将列表中的多个图像合并为 PDF
Merge Multiple Images into PDF from List
我有数千张图片需要转换并组合成多个 PDF 文件。一些图像被多次使用。我正在寻找一个自动化的解决方案。
我在电子表格中命名和组织了所有 .tif 文件。我想使用那个文件列表和 运行 一个自动脚本来为自己节省数百小时一个一个地转换这些文件。
所有文件都在同一个文件夹中。
我不是程序员。我曾尝试寻找某种文档、代码或 third-party 工具,但这似乎是一项不常见的任务。提前致谢。
我在 Windows。下面是电子表格的示例。我在 Excel 中使用公式制作我需要的任何格式或代码都没有问题。这些文件是许多扫描文档的单独页面。 “第一页”是指一个部分的开头。示例:0066.tif-0068.tif 是一个文档,其中 0066.tif 是文档的标题页。 0070.tif-0081.tif 是三个单独的文档合二为一,0070.tif 作为所有三个文档的标题页。所以它将是 0070.tif-0072.tif、0070.tif & 0073.tif-0074.tif 和 0070.tif & 0075.tif-0081.tif. 0069.tif 是单页文档。
Document
Title Page
First Page
Last Page
P-05593.pdf
0066.tif
0066.tif
0068.tif
P-05594.pdf
0069.tif
0069.tif
0069.tif
P-05595.pdf
0070.tif
0071.tif
0072.tif
P-05596.pdf
0070.tif
0073.tif
0074.tif
P-05597.pdf
0070.tif
0075.tif
0081.tif
P-05598.pdf
0082.tif
0083.tif
0084.tif
P-05599.pdf
0082.tif
0085.tif
0090.tif
P-05600.pdf
0091.tif
0091.tif
0093.tif
P-05601.pdf
0094.tif
0094.tif
0100.tif
更新:
我敢肯定这很少见。我找到了解决方案,以防万一有人遇到类似情况。
我结合使用了 Excel 和 nConvert。仍在研究 easier/faster 方法来识别哪些页面是哪些页面,因此目前这仍然是一个主要是手动过程。但是,在我得到该列表后,我使用 Excel 公式和 VBA 命令将列表导出为 .bat 文件,我可以 运行 一次处理所有文件。不确定我是否能够 post 文件,但这是我之前 post 编辑的 table 文件的代码输出,减去一些因为这变得冗长:
nconvert
C:\Users\username\NConvert\nconvert.exe -multi -dpi 200 -c 1 -out pdf -o P-05593.PDF -n 0066 0068 1 "####.tif"
C:\Users\username\NConvert\nconvert.exe -dpi 200 -c 1 -out pdf -o P-05594.PDF 0069.tif
C:\Users\username\NConvert\nconvert.exe -multi -dpi 200 -c 1 -out pdf -o P-05595.PDF -n 0070 0072 1 "####.tif"
C:\Users\username\NConvert\nconvert.exe -overwrite -out pdf -o TEMPA 0070.tif
C:\Users\username\NConvert\nconvert.exe -overwrite -multi -out pdf -o TEMPB -n 0073 0074 1 "####.tif"
C:\Users\username\NConvert\nconvert.exe -overwrite -D -multi -out pdf -dpi 200 -c 1 -xall -o P-05596.PDF TEMPA.pdf TEMPB.pdf
C:\Users\username\NConvert\nconvert.exe -overwrite -out pdf -o TEMPA 0070.tif
C:\Users\username\NConvert\nconvert.exe -overwrite -multi -out pdf -o TEMPB -n 0075 0081 1 "####.tif"
C:\Users\username\NConvert\nconvert.exe -overwrite -D -multi -out pdf -dpi 200 -c 1 -xall -o P-05597.PDF TEMPA.pdf TEMPB.pdf
C:\Users\username\NConvert\nconvert.exe -multi -dpi 200 -c 1 -out pdf -o P-05598.PDF -n 0082 0084 1 "####.tif"
C:\Users\username\NConvert\nconvert.exe -overwrite -out pdf -o TEMPA 0082.tif
C:\Users\username\NConvert\nconvert.exe -overwrite -multi -out pdf -o TEMPB -n 0085 0090 1 "####.tif"
C:\Users\username\NConvert\nconvert.exe -overwrite -D -multi -out pdf -dpi 200 -c 1 -xall -o P-05599.PDF TEMPA.pdf TEMPB.pdf
C:\Users\username\NConvert\nconvert.exe -multi -dpi 200 -c 1 -out pdf -o P-05600.PDF -n 0091 0093 1 "####.tif"
C:\Users\username\NConvert\nconvert.exe -multi -dpi 200 -c 1 -out pdf -o P-05601.PDF -n 0094 0100 1 "####.tif"
大大减少了我的处理时间。 1,169 份文件中的 5,759 页,全部用这种方法在不到一个小时的时间内编译完成。通常会花费我几周的时间。
编辑:
好的。我回到这个线程是因为我解决了我的问题,但正如 cday 在 上的 post 中指出的那样,它看起来过于复杂。他们似乎对解决方案投入了精力,所以我会尝试解释我在这里所做的事情,如果可能的话,我会 post 附件。
如前所述,我有多个文件夹,每个文件夹都有 5,000 多个原始 .tif 页面扫描。奇怪的文件类型选择,因为扫描它们的人没有保存多页,每个文件只保存一页。这些扫描件是带有标题页的编号文档,一些具有自己的标题页,另一些则共享一个标题页。我需要一种方法将这些单独的页面分解为每个文档编号的有组织的列表,有时 re-using 那些 multiple-document 标题页,因此直接文件列表可能不会起作用。至少不容易。
我最初执行此任务的过程非常缓慢,是手动滚动浏览每个扫描并将其文件名输入电子表格。然后,在资源管理器中突出显示这些文件,右键单击并在 Adobe 中合并。另存为。相应地命名文件。完成 1,600 多份文件后,我需要抽查以确保没有遗漏任何文件。我总是这样。所以这个解决方案不仅可以大大加快这个过程,而且还可以确保准确性。
长话短说,我在 Excel 中用 VBA 编写了以下代码(付出了巨大的努力、反复试验和挫折):
- 键盘激活宏。充当电子表格的一种控制板。
- 增加文件编号和当前查看的照片。
- 填写其他 Excel 公式以减少处理延迟。 (我需要对此进行调整,因为最终,当我接近列表末尾时,它会变慢。)
- 在系列中向后移动的宏,以及使 Windows 照片查看器成为焦点的宏。
- 填写页码以识别标题页、每个文档的第一页和普通页面。
- 一系列Excel IF公式生成nConvert命令。
- 用于将 nConvert 列命令保存到 .bat 文件的按钮。不过,我在这方面遇到了困难。它保存整个列,一直到 1048576,而不是只保存填充的单元格。正在进行中。
- 我可以 copy/paste 向项目负责人报告进度的专栏。还用于参考哪些原始扫描文件包含在哪个文档 PDF 中。
- 某种内存缓存。我发现 Excel 在文件关闭时不保存变量值,所以我添加了一个单元格块来保存和加载变量的当前值。一个肮脏的解决方案,但它有效。作为奖励,如果我需要返回一个重要的方式或者如果我需要跳过扫描文件,它也可以作为替代。
我想在没有上下文的情况下解释起来有点困难。我正在努力简化公式和 VBA 代码,因为这东西很丑。我更专注于功能,不是优雅。我会附上文件,但看起来我无法 post Excel 文件。 Link 到我下面的 Dropbox。
从cday开始https://newsgroup.xnview.com/index.php
我前几天给你发了邮件,不知道你收到没有?
我对你的问题很感兴趣,我开发了简单的代码,一行 .bat 来批量转换来自 Excel 的适当格式的输出。我还没有 post 编辑它,因为它需要在 NConvert 选项中修复错误,并且可能需要对另一个选项进行小幅增强,这两者都可以很快实现。
快速查看上面的代码,它看起来不必要地复杂,但我对此持保留意见。
如果您有兴趣,最好联系我,或者直接通过 PM 或电子邮件联系我。
编辑:
为了其他任何可能感兴趣的人的利益,这是 Michael Clark 在 XnView 论坛上使用不同用户名的原 post:
https://newsgroup.xnview.com/viewtopic.php?f=57&t=42567
这是我稍后在同一个主题中的草稿解决方案:
我有数千张图片需要转换并组合成多个 PDF 文件。一些图像被多次使用。我正在寻找一个自动化的解决方案。
我在电子表格中命名和组织了所有 .tif 文件。我想使用那个文件列表和 运行 一个自动脚本来为自己节省数百小时一个一个地转换这些文件。
所有文件都在同一个文件夹中。
我不是程序员。我曾尝试寻找某种文档、代码或 third-party 工具,但这似乎是一项不常见的任务。提前致谢。
我在 Windows。下面是电子表格的示例。我在 Excel 中使用公式制作我需要的任何格式或代码都没有问题。这些文件是许多扫描文档的单独页面。 “第一页”是指一个部分的开头。示例:0066.tif-0068.tif 是一个文档,其中 0066.tif 是文档的标题页。 0070.tif-0081.tif 是三个单独的文档合二为一,0070.tif 作为所有三个文档的标题页。所以它将是 0070.tif-0072.tif、0070.tif & 0073.tif-0074.tif 和 0070.tif & 0075.tif-0081.tif. 0069.tif 是单页文档。
Document | Title Page | First Page | Last Page |
---|---|---|---|
P-05593.pdf | 0066.tif | 0066.tif | 0068.tif |
P-05594.pdf | 0069.tif | 0069.tif | 0069.tif |
P-05595.pdf | 0070.tif | 0071.tif | 0072.tif |
P-05596.pdf | 0070.tif | 0073.tif | 0074.tif |
P-05597.pdf | 0070.tif | 0075.tif | 0081.tif |
P-05598.pdf | 0082.tif | 0083.tif | 0084.tif |
P-05599.pdf | 0082.tif | 0085.tif | 0090.tif |
P-05600.pdf | 0091.tif | 0091.tif | 0093.tif |
P-05601.pdf | 0094.tif | 0094.tif | 0100.tif |
更新: 我敢肯定这很少见。我找到了解决方案,以防万一有人遇到类似情况。
我结合使用了 Excel 和 nConvert。仍在研究 easier/faster 方法来识别哪些页面是哪些页面,因此目前这仍然是一个主要是手动过程。但是,在我得到该列表后,我使用 Excel 公式和 VBA 命令将列表导出为 .bat 文件,我可以 运行 一次处理所有文件。不确定我是否能够 post 文件,但这是我之前 post 编辑的 table 文件的代码输出,减去一些因为这变得冗长:
nconvert
C:\Users\username\NConvert\nconvert.exe -multi -dpi 200 -c 1 -out pdf -o P-05593.PDF -n 0066 0068 1 "####.tif"
C:\Users\username\NConvert\nconvert.exe -dpi 200 -c 1 -out pdf -o P-05594.PDF 0069.tif
C:\Users\username\NConvert\nconvert.exe -multi -dpi 200 -c 1 -out pdf -o P-05595.PDF -n 0070 0072 1 "####.tif"
C:\Users\username\NConvert\nconvert.exe -overwrite -out pdf -o TEMPA 0070.tif
C:\Users\username\NConvert\nconvert.exe -overwrite -multi -out pdf -o TEMPB -n 0073 0074 1 "####.tif"
C:\Users\username\NConvert\nconvert.exe -overwrite -D -multi -out pdf -dpi 200 -c 1 -xall -o P-05596.PDF TEMPA.pdf TEMPB.pdf
C:\Users\username\NConvert\nconvert.exe -overwrite -out pdf -o TEMPA 0070.tif
C:\Users\username\NConvert\nconvert.exe -overwrite -multi -out pdf -o TEMPB -n 0075 0081 1 "####.tif"
C:\Users\username\NConvert\nconvert.exe -overwrite -D -multi -out pdf -dpi 200 -c 1 -xall -o P-05597.PDF TEMPA.pdf TEMPB.pdf
C:\Users\username\NConvert\nconvert.exe -multi -dpi 200 -c 1 -out pdf -o P-05598.PDF -n 0082 0084 1 "####.tif"
C:\Users\username\NConvert\nconvert.exe -overwrite -out pdf -o TEMPA 0082.tif
C:\Users\username\NConvert\nconvert.exe -overwrite -multi -out pdf -o TEMPB -n 0085 0090 1 "####.tif"
C:\Users\username\NConvert\nconvert.exe -overwrite -D -multi -out pdf -dpi 200 -c 1 -xall -o P-05599.PDF TEMPA.pdf TEMPB.pdf
C:\Users\username\NConvert\nconvert.exe -multi -dpi 200 -c 1 -out pdf -o P-05600.PDF -n 0091 0093 1 "####.tif"
C:\Users\username\NConvert\nconvert.exe -multi -dpi 200 -c 1 -out pdf -o P-05601.PDF -n 0094 0100 1 "####.tif"
大大减少了我的处理时间。 1,169 份文件中的 5,759 页,全部用这种方法在不到一个小时的时间内编译完成。通常会花费我几周的时间。
编辑:
好的。我回到这个线程是因为我解决了我的问题,但正如 cday 在
如前所述,我有多个文件夹,每个文件夹都有 5,000 多个原始 .tif 页面扫描。奇怪的文件类型选择,因为扫描它们的人没有保存多页,每个文件只保存一页。这些扫描件是带有标题页的编号文档,一些具有自己的标题页,另一些则共享一个标题页。我需要一种方法将这些单独的页面分解为每个文档编号的有组织的列表,有时 re-using 那些 multiple-document 标题页,因此直接文件列表可能不会起作用。至少不容易。
我最初执行此任务的过程非常缓慢,是手动滚动浏览每个扫描并将其文件名输入电子表格。然后,在资源管理器中突出显示这些文件,右键单击并在 Adobe 中合并。另存为。相应地命名文件。完成 1,600 多份文件后,我需要抽查以确保没有遗漏任何文件。我总是这样。所以这个解决方案不仅可以大大加快这个过程,而且还可以确保准确性。
长话短说,我在 Excel 中用 VBA 编写了以下代码(付出了巨大的努力、反复试验和挫折):
- 键盘激活宏。充当电子表格的一种控制板。
- 增加文件编号和当前查看的照片。
- 填写其他 Excel 公式以减少处理延迟。 (我需要对此进行调整,因为最终,当我接近列表末尾时,它会变慢。)
- 在系列中向后移动的宏,以及使 Windows 照片查看器成为焦点的宏。
- 填写页码以识别标题页、每个文档的第一页和普通页面。
- 一系列Excel IF公式生成nConvert命令。
- 用于将 nConvert 列命令保存到 .bat 文件的按钮。不过,我在这方面遇到了困难。它保存整个列,一直到 1048576,而不是只保存填充的单元格。正在进行中。
- 我可以 copy/paste 向项目负责人报告进度的专栏。还用于参考哪些原始扫描文件包含在哪个文档 PDF 中。
- 某种内存缓存。我发现 Excel 在文件关闭时不保存变量值,所以我添加了一个单元格块来保存和加载变量的当前值。一个肮脏的解决方案,但它有效。作为奖励,如果我需要返回一个重要的方式或者如果我需要跳过扫描文件,它也可以作为替代。
我想在没有上下文的情况下解释起来有点困难。我正在努力简化公式和 VBA 代码,因为这东西很丑。我更专注于功能,不是优雅。我会附上文件,但看起来我无法 post Excel 文件。 Link 到我下面的 Dropbox。
从cday开始https://newsgroup.xnview.com/index.php
我前几天给你发了邮件,不知道你收到没有?
我对你的问题很感兴趣,我开发了简单的代码,一行 .bat 来批量转换来自 Excel 的适当格式的输出。我还没有 post 编辑它,因为它需要在 NConvert 选项中修复错误,并且可能需要对另一个选项进行小幅增强,这两者都可以很快实现。
快速查看上面的代码,它看起来不必要地复杂,但我对此持保留意见。
如果您有兴趣,最好联系我,或者直接通过 PM 或电子邮件联系我。
编辑:
为了其他任何可能感兴趣的人的利益,这是 Michael Clark 在 XnView 论坛上使用不同用户名的原 post:
https://newsgroup.xnview.com/viewtopic.php?f=57&t=42567
这是我稍后在同一个主题中的草稿解决方案: