我有大批必须合并的pdf文件。
Folder1 FileName说明:invoice12- 105767 -1510781492.pdf - 105767是与Folder2中的pdf文件名匹配的组件。
“ invoice12 - ”文件名的第一部分。这有时可能是“ invoice11 - ”或“ invoice6 - ”,因此基于字符长度的合并变得具有挑战性。 “ invoicexx - ”取决于文件来自系统的位置。
“ 105767 ”文件名的第二部分。这是匹配和合并的关键组件。这将是它所属的Folder2中的文件名。
“ -1510781492.pdf ”文件名的第三部分是系统生成的唯一ID,可以包含更多或更少的字符。
Folder1中:
FOLDER2:
OutputFolder:
示例我不想将两个文件夹中的所有文件合并为一个巨大的文件。我需要根据Folder2文件名合并它们。 (105767.pdf + invoice12-105767-1510781492.pdf)具体也是如此。
最终输出应该是按顺序合并的三个pdf文件:
对于自动化此过程的方法,我将不胜感激。我每天合并800多个文件。这种小型自动化可以减少我的日常工作时间和手腕上的手腕。
我主要使用Mac OS 10.13.1。我在Mac的“Automater”程序中环顾四周,无法弄清楚如何让它去做我需要的东西。 (我确实找到了将文件拆分成单页的好方法)
我下载了pdftk服务器(因为这与Mac兼容)但无法弄清楚这种匹配和合并是否适用于此程序。
我有Adobe Acrobat DC Professional,它似乎没有这个匹配和合并功能。
我甚至对其他付费节目持开放态度。我只需要一种相当面向未来的方法,通过我的Mac上的自动化来完成这项平凡的任务。
答案 0 :(得分:1)
您可以看一下示例代码附带的APDFL库示例。这些库在Mac上受支持,但不是免费的。
https://dev.datalogics.com/adobe-pdf-library/sample-program-descriptions/c1samples/#mergedocuments
以下是您需要使用的代码段:
APDFLDoc doc1 ( csInputFileName1.c_str(), true);
APDFLDoc doc2 ( csInputFileName2.c_str(), true);
// Insert doc2's pages into doc1.
// Here, we've stated PDLastPage, which adds the pages just before the last page of the target.
// If we specify PDBeforeFirstPage instead, doc2's pages will be inserted at the head of doc1.
PDDocInsertPages ( doc1.getPDDoc(),
PDLastPage,
doc2.getPDDoc(),
0,
PDAllPages,
PDInsertAll,
NULL, NULL, NULL, NULL);
doc1.saveDoc ( csOutputFileName.c_str(), PDSaveFull | PDSaveLinearized);