我正在尋找一種方法(最好在 Linux 上使用命令列)以正確的順序將書籍章節的單獨 PDF 合併到書籍的單個 PDF 中(可能基於 PDF 中的頁碼,或基於一些啟發式方法) 。
所以我希望能夠轉到包含所有單獨章節的目錄,然後執行以下操作
joinpdf-magic-command *.pdf
並使輸出 PDF 的順序正確。
我發現了很多合併 PDF 的工具 ( pdfjoin
、pdftk
),但它們都按照 PDF 在命令列中出現的順序放置 PDF。
編輯:
章節清單的範例可能是:
1-Introduction.pdf
2-The-analog-digital-interface.pdf
3-Adaptive-digital-systems.pdf
4-Non-linear-applications.pdf
5-Spectral-analysis-and-modulation.pdf
6-Introduction-to-Kalman-filters.pdf
7-Data-compression.pdf
8-Error-correcting-codes.pdf
9-Digital-signal-processors.pdf
Appendix-1-Solutions-to-problems.pdf
Appendix-2-A-MATLAB-Simulink-primer.pdf
Glossary.pdf
Index.pdf
Preface.pdf
References.pdf
但對於其他書籍,會有其他部分,它們的名稱可能不同,甚至名稱相同的部分甚至可能會以不同的順序排列。這就是為什麼我提到使用頁碼可能是關鍵。
答案1
如果文件命名約定不支援的話,您就無法自動對書中的章節進行排序。這是必須由人類完成的行為。
唯一的辦法就是做到這一點快速地是將有序的檔案名稱放入文字檔案中,類似於您在OP中引用的內容。
然後只需運行:
pdftk $(cat mychapters.txt) cat output book.pdf
答案2
就我個人而言,我不會尋找新工具,而是將工作流程包裝在腳本中以強制執行正確的順序。
我假設你有某種方法來辨識正確的順序,否則這是根本不可能的。理想情況下,您應該對文件進行命名,以便它們自動按正確的順序排列:
01ChapterTitleOne.pdf
02ChapterTitleTwo.pdf
etc.
等等。不過,您可能在末尾有章節號(如邁克爾的示例),這會破壞排序。在這種情況下,您應該在工作流程腳本中新增一個步驟來重新命名文件,以便它們按照正確的順序排列。
只要文件的命名一致,這就不應該成為問題。如果您可以分享有關命名的更多信息,我相信我們可以想出一個 BASH 腳本來執行此操作。
正確命名所有內容後,您應該能夠使用與工作流程腳本第二步相同的命令。如果這不起作用,那麼您將需要一個稍微複雜的 BASH 腳本,以正確的順序循環遍歷檔案。
所有這些都是 BASH 腳本的標準內容,但這一切都圍繞著文件的一致命名。