Answers:
这就是我要做的:
唯一的缺点是您必须为每个文件单击一次“ 确定”。
这可能会将其推入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();
}
}
好吧,cutepdf和pdf99做得很好,但是我发现PDFcreator更具吸引力,因为它的打印质量比其他两个更高,它还有更多的配置选项,而且它是开源的。
如果您的硬盘驱动器上有大量的Word文档,Excel电子表格和PowerPoint演示文稿,并且您希望立即将其转换为PDF,而无需投资购买Adobe Acrobat之类的商业软件,请尝试使用Google Docs。
尽管始终可以使用Google Docs将Office文档转换为PDF,但是新的导出功能使您可以更轻松地通过三个简单的步骤将Microsoft Office和OpenOffice文件格式批量转换为PDF(或HTML)。使用Google文档批量转换为PDF
使用Google文档作为批处理PDF转换器
步骤#1-在Google文档中创建一个新的“输入”文件夹,您将在其中上传所有要转换为PDF的文档和演示文稿。
步骤#2-现在选择Google文档中的上传文档选项,将目标文件夹设置为您在步骤#1中创建的文件夹,然后上传*所有文档。
尽管您还可以上传图片,但Google文档正式支持以下文件格式:
* 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文档后,再次打开仪表板,然后从右侧栏中选择“输入”文件夹。选择此文件夹中的所有文件,然后在“更多选项”下选择“导出”。
选择“ PDF”(或HTML)作为输出格式,您的所有Word文档,演示文稿,电子表格等都将立即转换为PDF。
而且,如果您要将大量文档转换为PDF,则不必等待浏览器中的转换完成,因为处理完成后,Google文档会自动向您发送电子邮件。该电子邮件将具有一个链接,您可以从该链接直接下载一个大型ZIP格式的所有PDF文件。
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
关于先前用户发布的SaveAsPDF.js脚本。这可以转换一个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保存在该目录中。
我确定它笨拙,但对我有用。希望这对某人有帮助。
我没有尝试过,但是有一种可以测试的使用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文件,那么使用OpenOffice.org读取.doc文件然后将其导出为PDF的原理似乎很合理。
这个小片段对我来说效果很好。
文件数量无限制
$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()
只需将其保存到PowerShell脚本之类Convert-Documents.ps1
,然后在所有源文档所在的文件夹中从命令行运行即可。
free
并且可以处理unlimited
文件的数量。这样,我回滚了编辑,但是结合了编辑中建议的语法修复。
[ref]
命令和最后一行($Word.Close()
)时,它在Windows 7下为我工作。否则会出现错误。
使用JODConverter和Open Office 在Windows XP 上将多个文档从DOC转换为PDF
先决条件:
步骤1从以下位置 下载JODConverter(最新版本jodconverter-2.2.2.zip)
在您选择的目录(D1)中解压缩JODConverter zip文件。
第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的目录)。
运行start-service.bat(现在在服务模式下启动开放办公室并等待命令)
第三步
将所有要转换为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目录中!
第四步:
运行convert.bat
对于D2中存在的每个* .doc文件,JODConverter将要求Open Office在同一目录中创建一个具有相同名称和pdf扩展名的新文件。
如果Word文档很简单,并且不需要在PDF文档中显示Word文档的格式,则可以在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
如果您想使用20个或更少文件的快速,简单的在线方法,请使用此网站online2pdf,您可以在此处上传文件,选择一些选项,然后单击“转换”,它将转换所有文档,然后自动下载包含以下内容的单个zip文件: PDF文件。
基于Umar的答案,这是经过修改的PowerShell脚本,它将执行以下操作:
与Umar一样,使用此方法:
doc2pdf.ps1
,在某个地方你PATH
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的测试。