【问题标题】:Windows 10 Print to PDF from command-lineWindows 10 从命令行打印到 PDF
【发布时间】: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 的开头生成免责声明,它仍然无法处理我在 Adob​​e Reader DC 中绘制的内容。所以 C# 真的不是一个选项,我需要一个命令行解决方案。

【问题讨论】:

  • 我的意思是从技术上讲,您可以为您发布的 C# 代码的 PowerShell 包装器编写批处理包装器。
  • 技术上,但我宁愿单独编写那个 C# 应用程序。

标签: batch-file pdf printing windows-10


【解决方案1】:

我认为使用 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 来创建&lt;filename&gt;_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 打印机自动保存带有前导下划线的文件?
    猜你喜欢
    • 2013-10-08
    • 2021-08-14
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    相关资源
    最近更新 更多