PDF文件合并基于文件名

时间:2017-11-15 22:01:12

标签: pdf merge automation filenames

我有大批必须合并的pdf文件。

Folder1 FileName说明:invoice12- 105767 -1510781492.pdf - 105767是与Folder2中的pdf文件名匹配的组件。

invoice12 - ”文件名的第一部分。这有时可能是“ invoice11 - ”或“ invoice6 - ”,因此基于字符长度的合并变得具有挑战性。 “ invoicexx - ”取决于文件来自系统的位置。

105767 ”文件名的第二部分。这是匹配和合并的关键组件。这将是它所属的Folder2中的文件名。

-1510781492.pdf ”文件名的第三部分是系统生成的唯一ID,可以包含更多或更少的字符。

Folder1中:

  • invoice12-105767-1510781492.pdf
  • invoice12-105768-1510781484.pdf
  • invoice12-105769-1510781469.pdf

FOLDER2:

  • 105767.pdf
  • 105768.pdf
  • 105769.pdf

OutputFolder:

示例我不想将两个文件夹中的所有文件合并为一个巨大的文件。我需要根据Folder2文件名合并它们。 (105767.pdf + invoice12-105767-1510781492.pdf)具体也是如此。

最终输出应该是按顺序合并的三个pdf文件:

  • 105767.pdf + invoice12-105767-1510781492.pdf制作1个名为105767.pdf的文件
  • 105768.pdf + invoice12-105768-1510781484.pdf制作1个名为105768.pdf的文件
  • 105769.pdf + invoice12-105769-1510781469.pdf制作1个名为105769.pdf的文件

对于自动化此过程的方法,我将不胜感激。我每天合并800多个文件。这种小型自动化可以减少我的日常工作时间和手腕上的手腕。

我主要使用Mac OS 10.13.1。我在Mac的“Automater”程序中环顾四周,无法弄清楚如何让它去做我需要的东西。 (我确实找到了将文件拆分成单页的好方法)

我下载了pdftk服务器(因为这与Mac兼容)但无法弄清楚这种匹配和合并是否适用于此程序。

我有Adobe Acrobat DC Professional,它似乎没有这个匹配和合并功能。

我甚至对其他付费节目持开放态度。我只需要一种相当面向未来的方法,通过我的Mac上的自动化来完成这项平凡的任务。

1 个答案:

答案 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);