diptishinde1983 Ответов: 2

Как конвертировать документ word в PDF в VB 6.0


У меня есть код для преобразования документа word в PDF в VB 6.0 но когда я пытаюсь его преобразовать он выдает ошибку недопустимый вызов процедуры

Что я уже пробовал:

Dim objDoc As Object                                  
    Dim rngRange As Object                               
    Dim WordApp As Object                      
    
    Set objDoc = CreateObject("Word.Document")
    Set WordApp = CreateObject("Word.Application")
    
 With WordApp
     Set objDoc = .Documents.Open(g_strPath & "\Documents\Report.doc")
        objDoc.activate
    

        WordApp.ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        App.Path & "\Documents\Report.pdf", ExportFormat:=wdExportFormatPDF, _
        OpenAfterExport:=True, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
        wdExportAllDocument, From:=1, To:=1, Item:=wdExportDocumentContent, _
        IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _
        wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _
        True, UseISO19005_1:=False
        
        objDoc.PrintOut FileName = "C:\MyReport.pdf"
        Set objDoc = Nothing
        Set rngRange = Nothing
        
        .visible = True
end with

Richard MacCutchan

Где происходит ошибка?

diptishinde1983

Когда я вызываю WordApp.ActiveDocument.ExportAsFixedFormat OutputFileName........
Для этого вызова я получаю ошибку "объект не поддерживает это свойство или вызов"

Richard MacCutchan

Проверьте документацию, чтобы увидеть, какая часть не является допустимой. Возможно, метод ExportAsFixedFormat не существует или один из параметров неверен.

DerekT-P

Вы указываете как параметры range, так и from / to; но from / to релевантны только в том случае, если выбран диапазон wdExportRange. В конце процедуры вы вызываете PrintOut с параметром filename. Вы не используете именованный параметр, а если и используете, то этот параметр называется OutputFileName, а не FileName. Имя файла имеет значение только в том случае, если вы установили значение "PrintToFile" true, а это не так; поэтому последний шаг просто печатает документ на принтер по умолчанию. Теперь, если вы настроили принтер по умолчанию как PrintToPdf, то это может быть все, что вам нужно сделать, то есть нет необходимости пытаться выполнить предыдущий экспорт.
objDoc.Распечатка Файла Outputfilename:="C:\myReport.pdf",Параметр Printtofile:=Истина

diptishinde1983

@DerekTP123
Я использовал некоторые закладки в своем документе word для отображения данных. И я хочу конвертировать весь word doc в PDF. Я должен удалить из параметров

DerekT-P

Вы явно указали, что хотите экспортировать весь документ целиком. В документации MS это явно не указано, но поскольку To:= и From:= релевантны только при использовании wdExportRange, в любое другое время они должны быть проигнорированы. Для ясности, если ничего другого, я бы удалил параметры to/from. И вы не "конвертируете" документ; вы экспортируете копию в другом формате (или логически "печатаете" документ). Но в любом случае смотрите решение Рика ниже... предполагал, что у вас это установлено, так как вы ссылаетесь на константы wdExport...., но, может быть, вы просто определили их сами?

2 Ответов

Рейтинг:
1

RickZeeland

Вы должны установить надстройку microsoft office для экспорта, см. Пример 2 здесь:
visual-basic-6 - преобразование файла Word в Pdf-файл в vb6.0 [решено] | DaniWeb[^]


Рейтинг:
0

Member 14695222

Спасибо за пример. Это сработало для меня в VB6. Я добавил оператор вызова, и вот значения, которые я использовал...

Дим lngPageCount как долго
lngPageCount = 1
Вызов objDoc.ExportAsFixedFormat(strReportName & ".pdf", wdExportFormatPDF, False, _
wdExportOptimizeForPrint, wdExportAllDocument, 1, lngPageCount, _
wdExportDocumentContent, False, True, wdExportCreateNoBookmarks, True, _
Правда, Ложь)