将单词文档转换为pdf.无法替换现有的 pdf 文档以将 word 转换为 pdf



我正在尝试使用以下脚本将Word文档转换为PDF

我正在做的是:

  • 首先创建一个空的 PDF 文件作为输出文件

  • 然后用转换后的 Word 文件替换该文件。

我的脚本如下:

#Convert Word formats to PDF 
Param(
 [string]$inputPath,
 [string]$outputPath
)
$wdFormatPDF = 17
$File = $inputPath
$Word=NEW-OBJECT –COMOBJECT WORD.APPLICATION
$Doc=$Word.Documents.Open($File)
$Doc.saveas([ref]$outputPath,[ref]$wdFormatPDF)
$Doc.close()
$Word.Quit() 
$Word = $null 
[gc]::collect() 
[gc]::WaitForPendingFinalizers()

Doc.saveas()函数不会替换输出的 pdf 文件。好像我之前没有创建输出文件,而只是指定一个要输出的虚拟文件名,它会创建该文件。

但是我如何替换我正在创建的 PDF 文件。PDF 文件是通过 JAVA 创建的。通过 java 命令运行通过 powershell 运行脚本。

cmd 如下,

 powershell -NonInteractive -NoLogo -NoProfile -ExecutionPolicy ByPass   
   -File "D:/wordToPdf.ps1" -inputPath D:/Files/TestLetter.docx 
   -outputPath D:/Files/PDF_TestLetter.pdf

TestLetter是要转换的word文档,PDF_TestLetter已经创建了空的PDF文档。因此需要替换此PDF文档。

根据 SaveAs() 函数的文档,无法替换已经存在的文档。我建议在实际保存文件之前尝试删除文件(如果存在)(请参阅链接)。

试试这个:

  1. 创建您的空白PDF文件(我不确定为什么要这样做)。称之为filename.pdf.

  2. filename.pdf重命名为filename.pdf.bak

  3. 生成输出的 PDF 文件。如果此生成失败,请删除该文件并将filename.pdf.bak重命名回 filename.pdf

  4. 删除filename.pdf.bak.

相关内容

  • 没有找到相关文章