将 Word 文档批量转换为 PDF

Kje*_*sen 38 pdf software-rec conversion microsoft-word

如何批量转换多个 Word 文档并将它们保存为 [原始文件名].pdf?

bob*_*mcr 42

这可能会将其推入 stackoverflow.com 领域,但您可以编写 Word 2007 脚本以打开文档并将其另存为 PDF。这需要 Office 2007 和Microsoft的“另存为 PDF”插件

将其保存到文件SaveAsPDF.js并使用cscript.exe //nologo SaveAsPDF.js SomeFolder\MyDocToConvert.doc以下命令从命令行运行它:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var docPath = WScript.Arguments(0);
docPath = fso.GetAbsolutePathName(docPath);

var pdfPath = docPath.replace(/\.doc[^.]*$/, ".pdf");
var objWord = null;

try
{
    WScript.Echo("Saving '" + docPath + "' as '" + pdfPath + "'...");

    objWord = new ActiveXObject("Word.Application");
    objWord.Visible = false;

    var objDoc = objWord.Documents.Open(docPath);

    var wdFormatPdf = 17;
    objDoc.SaveAs(pdfPath, wdFormatPdf);
    objDoc.Close();

    WScript.Echo("Done.");
}
finally
{
    if (objWord != null)
    {
        objWord.Quit();
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 上面的代码工作得很好,但它只需要一个文件作为参数。我懒得在 JScript 中查找过滤目录的方法,所以我使用以下帖子作为灵感在 Powershell 中编写了一种方法:http://stackoverflow.com/questions/181036/powershell-run-a-program- in-a-foreach/181065 PS E:\MyDocuments> ls *.doc | %{cscript //nologo E:\jssrc\SaveAsPDF.js $_} (5认同)

Tra*_*vis 25

这就是我将如何做到的:

  1. 下载CutePDF writer
  2. 将 writer 设置为您的默认打印机(您可以稍后将其更改回来)
  3. 将所有 .doc 文件放在同一个文件夹中
  4. 突出显示所有文件,右键单击,打印

唯一的缺点是您必须为每个文件单击一次确定

  • 这就是我实际所做的。不过,我不得不做一些不同的事情......我从控制面板打开CutePDF“打印机”,所以它显示了打印机队列......然后我将文档拖放到该窗口中 - 然后一切都在敲击 ENTER 接受来自那里的文件名......它们都被命名为 MICROSOFT WORD - [文件名].pdf,但我可以轻松解决这个问题。 (3认同)

小智 9

好吧,cutepdf 和 pdf99 做得很好,但我发现PDFcreator更有吸引力,因为它比其他两个打印质量更高,它还有更多的配置选项,而且它是开源的。


小智 6

关于之前用户发布的 SaveAsPDF.js 脚本。这适用于转换一个 pdf 文件,但我不知道如何转换目录中的所有文件。玩了一会儿,我创建了一个文件。CovertAll2PDF.bat 包含以下 2 行:

echo off
for %%X in (*.doc) do cscript.exe //nologo SaveAsPDF.js "%%X"
Run Code Online (Sandbox Code Playgroud)

还有/r "Parent Directory"一个可以插入,因为/r "PD" %%X in -....它会遍历所有目录,在这种情况下,将其设为 C:\SaveAsPDF.js 并将 Saveaspdf.js 保存在该目录中。

我确定它很笨拙,但它对我有用。希望这有助于某人。


Adr*_*ian 6

使用 Google Docs as a Batch PDF Converter by Amit Agarwal

如果您的硬盘驱动器上有大量 Word 文档、Excel 电子表格和 PowerPoint 演示文稿,您希望立即将其转换为 PDF,而无需投资 Adob​​e Acrobat 等商业软件,请尝试使用 Google Docs。

虽然始终可以使用 Google Docs 将 Office 文档转换为 PDF,但新的导出功能使您可以通过三个简单的步骤将 Microsoft Office 和 OpenOffice 文件格式批量转换为 PDF(或 HTML)。使用 Google Docs 批量转换为 PDF

使用 Google Docs 作为批量 PDF 转换器

第 1 步- 在 Google Docs 中创建一个新的“输入”文件夹,您将在其中上传要转换为 PDF 的所有文档和演示文稿。

第 2 步- 现在选择 Google Docs 中的上传文档选项,将目标文件夹设置为您在第 1 步中创建的文件夹,然后上传*您的所有文档。

Google Docs 正式支持以下文件格式,但您也可以上传图片:

* Microsoft PowerPoint (.ppt, .pps).
* Microsoft Word (.doc, .docx), OpenDocument (.odt) and StarOffice (.sxw).
* Microsoft Excel (csv, .xls, .xlsx) files and OpenDocument Spreadsheet (.ods).
Run Code Online (Sandbox Code Playgroud)

[*] 您也可以使用电子邮件选项将文档上传到 Google 文档,但这会将所有内容都放在主文件夹中,因此管理文档可能会成为一个问题,尤其是当您有太多文件时。

第 3 步- 将所有文件上传到 Google 文档后,再次打开仪表板并从右侧边栏中选择“输入”文件夹。选择此文件夹中的所有文件,然后在“更多选项”下选择“导出”。

这里选择“PDF”(或 HTML)作为输出格式,您所有的 Word 文档、演示文稿、电子表格等将立即转换为 PDF。

如果您要将大量文档转换为 PDF,则无需在浏览器中等待转换完成,因为 Google 文档会在处理结束后自动向您发送电子邮件。该电子邮件将包含一个链接,您可以从中直接下载一个大 ZIP 中的所有 PDF 文件。


JC2*_*2k8 6

Bobbymcr 的回答非常有趣,并且适用于 Word 2010。不过,还有待改进。Bobbymcr 的原始命令行如下所示:

cscript.exe //nologo SaveAsPDF.js SomeFolder\MyDocToConvert.doc

如果您将 .js 文件与某种编辑器(如 Notepad++)相关联,这将不起作用。在这种情况下,您还必须指定要使用的引擎,否则 cscript 会向您显示错误消息。这可以通过使用//E:jscript命令行参数轻松实现:

cscript.exe //nologo //E:jscript SaveAsPDF.js SomeFolder\MyDocToConvert.doc


Uma*_*aja 5

这个小片段对我来说效果很好。

  • 自由
  • 简单
  • 文件数量没有限制

    $Word=New-Object -ComObject Word.Application
    
    $Files=Get-ChildItem ".\*.docx"
    
    ForEach ($File In $Files) {
        $Document=$Word.Documents.Open($File.FullName)
    
        $Name=($Document.FullName).Replace("docx", "pdf")
    
        $Document.SaveAs([ref] $Name, [ref] 17)
        $Document.Close()
    }
    
    $Word.Close()
    
    Run Code Online (Sandbox Code Playgroud)

只需将它保存到一个 PowerShell 脚本中Convert-Documents.ps1,然后从所有源文档所在的文件夹中的命令行运行它。