Windows 10 从命令行打印到 PDF
Posted
技术标签:
【中文标题】Windows 10 从命令行打印到 PDF【英文标题】:Windows 10 Print to PDF from command-line 【发布时间】:2017-11-21 01:00:30 【问题描述】:我现在正在纠正我的学生的作业,我想自动执行一个我一直需要做的烦人的步骤。 在注释他们的 PDF 解决方案后,我需要将它们打印到 PDF 文件中,以便将我的注释烘焙到 PDF 中,以便它们可以包含在 LaTeX 中。现在我必须手动选择“Microsoft Print to PDF”并输入带有前导下划线的 PDF 名称(这是我自动生成的 LaTeX 文件所期望的)。这对于 30 多个文件来说很烦人。 所以我想在一个批处理脚本中自动为所有 PDF 发布这个,以尽量减少我对简单双击的工作。我已经看到这是可能的,例如C# (Here),但我想要一个带有简单批处理脚本的解决方案。 这个可以吗?
编辑: 我发现的 C# 代码实际上并没有完成工作。您不能以这种方式打印现有 PDF。我需要使用 Spire.PDF 来做到这一点。但是,免费版会弄乱 PDF;我可以在 NuGet 中下载“完整”版本,但这会在任何 PDF 的开头生成免责声明,它仍然无法处理我在 Adobe Reader DC 中绘制的内容。所以 C# 真的不是一个选项,我需要一个命令行解决方案。
【问题讨论】:
我的意思是从技术上讲,您可以为您发布的 C# 代码的 PowerShell 包装器编写批处理包装器。 技术上,但我宁愿单独编写那个 C# 应用程序。 【参考方案1】:我认为使用 PowerShell 应该很容易,但我遇到了与this post 中描述的相同的问题。 here 的 PowerShell 解决方案只为我创建空白 PDF 文件。
可能存在更好的解决方案,但我设法将PDFtoPrinter 和this post 结合起来。
批处理脚本可能如下所示:
for /R %%f in (*.pdf) do (
(echo with createobject^("wscript.shell"^)
echo .run "<path to PDFtoPrinter.exe> ""%%f"""
echo wscript.sleep 3000
echo .sendkeys """%%~df%%~pf%%~nf_correction.pdf"""
echo .sendkeys "enter"
echo wscript.sleep 3000
echo end with) > %temp%\sk.vbs
start /w %temp%\sk.vbs
)
此脚本使用Microsoft Print to PDF
来创建<filename>_correction.pdf
格式的对应文件。
批处理脚本在%temp%
中创建一个sk.vbs
脚本并运行它。
然后sk.vbs
脚本处理Microsoft Print to PDF
的文件保存对话框。
此外,此解决方案的缺点是在脚本运行时您无法使用计算机,因为sk.vbs
脚本必须将键发送到焦点窗口。
【讨论】:
【参考方案2】:你最好安装pdfcreator
并使用commandline options
【讨论】:
这看起来很有希望,不幸的是,当我尝试按照链接中所述通过命令行运行它时,我总是收到错误消息“无法转换以下文件 [...]”。跨度> 好的,我通过 not 使用 pdfcreator 的命令行选项,但使用 Acrobat Reader DC 的命令行选项,我指定了我使用 pdfcreator 创建的自定义打印机。该打印机只是自动保存带有前导下划线的文件。它按预期工作!cmd /c "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" /t C:\temp\MyPDF.pdf "MyCoolPrinter"
您是如何让您的自定义 pdfcreator 打印机自动保存带有前导下划线的文件?以上是关于Windows 10 从命令行打印到 PDF的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 7 上,Libreoffice 命令行在打开 DOCX 或转换为 PDF 时崩溃