我现在正在纠正我的学生的作业,我想自动化一个我经常要做的烦人的步骤。
在对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#真的不是一个选项,我需要一个命令行解决方案。
答案 0 :(得分:1)
您最好安装pdfcreator
答案 1 :(得分:0)
我认为使用 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
的相应文件。
批处理脚本在 sk.vbs
中创建一个 %temp%
脚本并运行它。
sk.vbs
脚本然后处理 Microsoft Print to PDF
的文件保存对话框。
此外,此解决方案的缺点是您无法在脚本运行时使用计算机,因为 sk.vbs
脚本必须将键发送到焦点窗口。