Windows 10从命令行打印到PDF

时间:2017-06-18 21:57:10

标签: batch-file pdf printing windows-10

我现在正在纠正我的学生的作业,我想自动化一个我经常要做的烦人的步骤。
在对PDF解决方案进行注释后,我需要将它们打印为PDF文件,以便将我的注释烘焙到PDF中,以便它们可以包含在LaTeX中。现在我必须手动选择" Microsoft Print to PDF"并输入带有前导下划线的PDF名称(这是我自动生成的LaTeX文件所期望的)。这会让30多个文件变得烦人 所以我想在批处理脚本中自动为所有PDF发出这个,以尽量减少我对简单双击的努力。我已经看到这是可能的,例如C#(Here),但我想要一个简单批处理脚本的解决方案 可以这样做吗?

编辑:
我发现的C#-Code实际上并没有完成工作。您无法以这种方式打印现有的 PDF。我需要使用Spire.PDF来做到这一点。然而,免费版本会弄乱PDF;我可以下载" Full"然而,在NuGet版本中,这会在任何PDF的开头生成免责声明,它仍然无法处理我在Adobe Reader DC中绘制的内容。所以C#真的不是一个选项,我需要一个命令行解决方案。

2 个答案:

答案 0 :(得分:1)

您最好安装pdfcreator

并使用commandline options

答案 1 :(得分:0)

我认为使用 PowerShell 应该很容易,但我遇到了与 this post 中描述的相同的问题。 here 的 PowerShell 解决方案只为我创建空白 PDF 文件。

可能存在更好的解决方案,但我设法将 PDFtoPrinterthis 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 的相应文件。

批处理脚本在 sk.vbs 中创建一个 %temp% 脚本并运行它。 sk.vbs 脚本然后处理 Microsoft Print to PDF 的文件保存对话框。

此外,此解决方案的缺点是您无法在脚本运行时使用计算机,因为 sk.vbs 脚本必须将键发送到焦点窗口。