如何使用 Windows 命令行自动将图像文件打印成 PDF 文件

如何使用 Windows 命令行自动将图像文件打印成 PDF 文件

编辑:如果有帮助的话,我的朋友似乎可以安装 IrfanView。

我正在帮助一位朋友自动将文件夹中的每一张图片打印成多个 PDF:在 Windows 10 电脑中,每张图片都会打印成不同的 PDF。我的朋友在公司环境中工作,对安装有严格的规定,因此有很多东西无法安装,例如

  • 不在虚拟机中
  • 到目前为止,我知道他无法安装 imagemagick、2pdf、foxit
  • 他有 Acrobat Reader 和 PDF-XChange Pro,但不确定这些是否有用,到目前为止我还没有发现这个软件有什么用
  • 一些要打印的图像文件位于这些特殊的 tiff 文件中,其中单个图像有多个“页面”,我认为这叫做 mtif 或 multifif?当脚本打印这些文件时,它只会生成包含第一个“页面”的 PDF。理想的结果是单个多页 PDF 文件。
  • 脚本在“后台”运行的时间越长,效果就越好。

到目前为止,我所做的是一个非常简单的批处理脚本,它利用了“Microsoft Print to PDF”虚拟打印机和 mspaint 命令行。如果我可以通过 mspaint 以外的其他命令以某种方式激活“Microsoft Print to PDF”打印机,也许我至少可以解决将多页文件打印到包含所有“页面”的单个 PDF 中的问题。我这样说是因为如果我使用 mspaint GUI 打印 mtif,我会重复同样的问题。(mtif 生成只有一页的 PDF”)。

更新:这也可能只是巧合,问题在某种程度上是由于批处理操作造成的。IrfanView 中的 /print="Microsoft Print to PDF" 产生了与单页 PDF 相同的不良结果,其中只有所述多页的第一个图像作为所述命令的输出。

这是我迄今为止编写的批处理脚本

@echo off
echo This script will print all the images in this foldes
echo so long as they are openable with mspaint 
echo and print in a new, unique folder inside %~dp0

for %%i in (*.jpg) do (
  mspaint /pt %%i "Microsoft Print to PDF"
)

for %%i in (*.jpeg) do (
  mspaint /pt %%i "Microsoft Print to PDF"
)

for %%i in (*.png) do (
  mspaint /pt %%i "Microsoft Print to PDF"
)

for %%i in (*.tif) do (
  mspaint /pt %%i "Microsoft Print to PDF"
)

我的朋友已经用这个脚本感谢我了,因为尽管脚本要求输入每个 pdf 文件的名称和目标,但它仍然为他节省了一些时间和点击次数。我想做得更好,但 mtif 文件仍然存在问题。

我已经准备好创建文件夹的代码

@echo off
mkdir Img2Pdf%date:~-4,4%"-"%date:~-7,2%"-"%date:~-10,2%" - "%time:~0,2%"h"%time:~3,2%"m"%time:~6,2%"s"
pause

我认为添加副本/将生成的文件移动到文件夹中或为文件添加名称对我来说没有问题。但到目前为止,我发现缺少打印选项,这是一项相当困难的任务。我有什么选择?我猜没有!

感谢您花时间阅读这篇文章,如果我能以任何方式改进这个问题,请告诉我,如果代码/拼写可能会让一些人感到不舒服,我很抱歉,因为这不是最优化的代码或最正确的措辞,如果可能的话,请大家耐心等待并保持友善。

答案1

打印为 PDF 文件的过程需要更多时间,速度应该会比较慢,我建议您直接将图像文件转换为 PDF 文件,直接转换速度非常快并且质量无损,例如,您可以使用 VeryPDF 图像到 PDF 转换器软件批量将所有图像文件转换为 PDF 文件。

相关内容