将word doc转换为pdf。无法替换现有的pdf documnet以将单词转换为pdf

时间:2016-02-24 07:27:32

标签: powershell ms-word pdf-generation

我正在尝试使用以下脚本将 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文档。

2 个答案:

答案 0 :(得分:0)

根据SaveAs()函数的文档,无法替换现有文档。 我建议在实际保存文件之前尝试删除文件(see link)。

答案 1 :(得分:0)

试试这个:

  1. 创建空白PDF文件(我不知道你为什么要这样做)。称之为filename.pdf

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

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

  4. 删除filename.pdf.bak.