解决方法
我使用以下.vbs脚本执行此操作.如果你需要Delphi代码,那么转换就很容易了:
Const wdDoNotSaveChanges = 0 Const wdRevisionsViewFinal = 0 Const wdFormatPDF = 17 Dim arguments Set arguments = WScript.Arguments Function DOC2PDF(sDocFile) Dim fso ' As FileSystemObject Dim wdo ' As Word.Application Dim wdoc ' As Word.Document Dim wdocs ' As Word.Documents Set fso = CreateObject("Scripting.FileSystemObject") sDocFile = fso.GetAbsolutePathName(sDocFile) sPdfFile = fso.GetParentFolderName(sDocFile) + "\" + fso.GetBaseName(sDocFile) + ".pdf" Set wdo = CreateObject("Word.Application") Set wdocs = wdo.Documents WScript.Echo "opening: " + sDocFile Set wdoc = wdocs.Open(sDocFile) if fso.FileExists(sPdfFile) Then fso.DeleteFile sPdfFile,True End If WScript.Echo "Converting to PDF: " + sPdfFile Set wview = wdoc.ActiveWindow.View wview.ShowRevisionsAndComments = False wview.RevisionsView = wdRevisionsViewFinal wdoc.SaveAs sPdfFile,wdFormatPDF WScript.Echo "Conversion completed" wdo.Quit wdDoNotSaveChanges Set fso = Nothing Set wdo = Nothing End Function If arguments.Count=1 Then Call DOC2PDF(arguments.Unnamed.Item(0)) Else WScript.Echo "Generates a PDF file from a Word document using Word PDF export." WScript.Echo "" WScript.Echo "Usage: doc2pdf.vbs <doc-file>" WScript.Echo "" End If