2009-08-03 13:53:21 +0000 2009-08-03 13:53:21 +0000
36
36
Advertisement

批量转换Word文档为PDF

Advertisement

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

Advertisement
Advertisement

答案 (13)

41
41
41
2009-08-23 17:35:01 +0000

这可能是把它推到stackoverflow.com的领域,但你可以脚本Word 2007打开并保存为PDF文档。这需要Office 2007和微软的“保存为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();
    }
}
24
24
24
2009-08-03 17:35:13 +0000

我是这样做的。

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

唯一的缺点是,你必须为每个文件点击确定一次。

9
Advertisement
9
9
2009-09-18 14:41:34 +0000
Advertisement

好了,cutepdf和pdf99做他们的工作,但我发现PDFcreator更吸引人,因为它的打印质量比其他两个更高,它也有更多的配置选项,再加上它是开源的。

6
6
6
2011-03-05 13:20:22 +0000

使用谷歌文档作为批量PDF转换器阿米特-阿加瓦尔

如果你有一个巨大的Word文档捆绑,Excel电子表格和PowerPoint演示文稿在您的硬盘驱动器上,你想转换为PDF一次,而无需投资在商业软件,如Adobe Acrobat,尝试谷歌文档。

虽然一直以来都可以使用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).

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

步骤#3-一旦所有文件都上传到Google Docs上,再次打开仪表板,从右侧侧栏选择 "输入 "文件夹。选择该文件夹中的所有文件,并在 "更多选项 "下选择 "导出"。

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

如果你正在将一大批文档转换为PDF,你不必在浏览器中等待转换完成,因为一旦处理结束,Google Docs会自动给你发送一封电子邮件。该电子邮件将有一个链接,从那里你可以直接下载所有的PDF文件在一个大的ZIP。

6
Advertisement
6
6
2010-06-04 09:06:35 +0000
Advertisement

关于前面一个用户发布的SaveAsPDF.js脚本,这个脚本可以转换一个pdf文件,但我不知道如何将所有文件都隐藏在一个目录中。这对于转换一个pdf文件是有效的,但我不知道如何隐藏一个目录中的所有文件。我稍微玩了一下,就创建了一个文件。CovertAll2PDF.bat,有以下2行。

echo off
for %%X in (*.doc) do cscript.exe //nologo SaveAsPDF.js "%%X"

还有/r "Parent Directory",可以插入/r "PD" %%X in -....,它将会通过所有的目录,在这种情况下,把它做成C:\SaveAsPDF.js,然后把Saveaspdf.js保存在那个目录下。

我肯定它很笨拙,但对我来说是有效的。希望这能帮助别人。

6
6
6
2012-07-12 06:54:37 +0000

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

4
Advertisement
4
4
2017-03-11 11:06:12 +0000
Advertisement

这个小片段对我来说非常有效。

  • 免费
  • 简单
  • 对文件数量没有限制

只需将其保存为像 Convert-Documents.ps1这样的 PowerShell 脚本,然后在你所有源文件所在的文件夹中通过命令行运行它。

4
4
4
2009-08-03 14:32:28 +0000

我没有尝试过,但有一个使用OpenOffice.org的批量方法,你可以测试一下。关于如何在GNU/Linux和Windows平台上进行这项工作的说明,请参见 http://www.tech-faq.com/convert-word-to-pdf.shtml (也请参见 http://www.togaware.com/linux/survivor/Convert_MS_Word.html “和 http://www.oooforum.org/forum/viewtopic.phtml?t=3772 )。

使用OpenOffice.org读取.doc文件,然后将其导出为PDF文件的原则似乎是正确的,如果你发现OpenOffice.org可以打开你所拥有的.doc文件。

1
Advertisement
1
1
2020-02-18 06:58:57 +0000
Advertisement

与上面的Powershell、Batch和Windows Script Host脚本相比,一个稍微简单的选择是docx2pdf工具,它可以在Windows和MacOS上工作: https://github.com/AlJohri/docx2pdf/

与其他答案类似,这种方法在Windows中使用win32com,在macOS中使用JXA(Javscript for Automation,基本上是JS中的AppleScript)。不过,它被打包成了一个易于安装的、可以批量转换的包,并带有进度条。

安装。

pip install docx2pdf

运行:

docx2pdf myFolderOfWordDocs

免责声明:我在苦苦寻找一个跨平台的解决方案,将docx批量转换为pdf,且格式问题为零的情况下,因为它直接使用微软Word,所以我写了这个工具。

0
0
0
2011-03-05 14:38:31 +0000

在Windows XP上使用 JODConverter 和Open Office将多个文档从DOC转换为PDF

前提条件:


步骤1 [ 从

下载JODConverter ](http://sourceforge.net/projects/jodconverter/files/)(最新版本jodconverter-2. 2.2.2.zip)

将JODConverter压缩文件解压到你选择的目录中(D1)

  • *

步骤2 在服务模式下启动OpenOffice(更多细节 这里

创建一个批处理文件start-service.bat,内容如下。

start-service.bat:

X:\Program Files\OpenOffice.org 3\program\soffice.exe -headless
-accept="socket,host=127.0.0.1,port=8100;urp;" –nofirststartwizard

::如果没有工作,请尝试删除最后一个参数(-nofirststartwizard)

(假设X:Program Files\OpenOffice.org 3\是安装Open Office的目录,并且存在soffice.exe)。

Run start-service.bat (open office现在以服务模式启动并等待命令)


步骤3

收集所有要转换为pdf的文件到一个目录中 (D2)

创建一个批处理文件convert.doc,它将启动JODConverter并发出转换指令。

convert.bat:

java -jar "<D1>\lib\jodconverter-cli-2.2.2.jar" -f pdf *.doc

其中D1是在步骤1中创建的JODConverter目录

(如果JODConverter有其他版本号,请相应更新convert.bat)

重要的是:convert.bat文件必须位于D2目录下 !


步骤4:

运行convert.bat

对于D2中存在的每个*.doc文件,JODConverter将要求Open Office在同一目录下创建一个具有相同名称和pdf扩展名的新文件。

0
0
0
2016-06-17 07:00:01 +0000

如果你想要一个快速简单的在线方法,20个或更少的文件,那么使用这个网站online2pdf,在这里你可以上传你的文件,选择一些选项,然后点击转换,它会转换所有的文件,然后自动下载一个包含PDF文件的单一zip文件。

0
0
0
2015-01-29 19:14:05 +0000

如果Word文档很简单,如果你不需要Word文档的格式化出现在PDF文档中,你可以用一个简单的循环绕过我的DOCXtoPDF程序的核心代码,来做你想要的事情。DOCXtoPDF内部使用了xtopdf,我的Python工具包,用于从许多其他格式创建PDF。你还需要安装ReportLab 1.21。

参见。 http://jugad2.blogspot.in/2013/10/convert-microsoft-word-files-to-pdf.html http://slid.es/vasudevram/xtopdf https://bitbucket.org/vasudevram/xtopdf http://www.reportlab.com/ftp

0
0
0
2017-08-31 14:33:32 +0000

Umar的回答的基础上,这里有一个经过修改的PowerShell脚本,它将。

  • 处理DOC以及DOCX
  • 工作时显示一个进度条

和Umar的一样,要使用这个:

  • 将下面的脚本保存为一个文件,例如doc2pdf.ps1,保存在你的PATH
  • 更改为包含你的doc或docx文件的目录
  • 运行powershell doc2pdf.ps1
$Word=New-Object -ComObject Word.Application

$Files=@(Get-ChildItem ".\*.docx") + @(Get-ChildItem ".\*.doc")
    # Need @() to get an array in case there is only one file - see
    # https://blogs.technet.microsoft.com/heyscriptingguy/2013/07/18/powertip-find-number-elements-in-a-powershell-array/#comment-104863

for($file_idx = 0; $file_idx -lt $Files.Count; ++$file_idx) {

    # Show the current progress
    $File = $Files[$file_idx]
    Write-Progress -Activity "Convert DOC(X) to PDF" `
                    -CurrentOperation $File.Name `
                    -PercentComplete (($file_idx/$Files.Count)*100)

    # Make the PDF
    $Document=$Word.Documents.Open($File.FullName)
    $Name=($Document.FullName -replace "\.docx?", ".pdf") # -replace is case-insensitive regex per https://ss64.com/ps/syntax-regex.html

    $Document.SaveAs([ref] $Name, [ref] 17)
    $Document.Close()
}

# Clean up
$Word.Quit() # Doesn't close other Word instance that may be running.

# Remove any dangling references, per https://technet.microsoft.com/en-us/library/ff730962.aspx
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Word)
Remove-Variable Word

# By cxw - https://superuser.com/users/269989/cxw - CC-BY-SA 3.0
# Modified from https://superuser.com/a/1187598/269989 by https://superuser.com/users/12797/umar-farooq-khawaja

用Word 2013和PowerShell 4.0测试。

Advertisement

相关问题

19
12
9
13
13
Advertisement