解决方法
我使用以下.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