[英]Merging PDFs automatically with pdftk
我有以下情況:
我有5個不同的文件夾包含PDF文件。
文件夾1包含一個PDF - 首頁,例如Front Page.pdf
。
這應該是每個新生成的PDF文件的首頁。
文件夾2包含不同的命名PDF文件,每個文件以1_ FileName開頭,例如1_abcd_123.pdf
, 1_ghi_675.pdf
。 字符數不一樣,唯一常見的是它們都以1_
開頭。
這應該是第2頁。
文件夾3包含與文件夾2相同數量的PDF文件。 PDF文件的名稱與文件夾2完全相同,但它們以2_
開頭。
文件夾4包含相同數量的PDF文件,如文件夾2和文件夾3 。 PDF文件的名稱與文件 夾2和文件夾3完全相同,但它們都以3_
開頭。
文件夾5包含一個PDF,例如LastPage.pdf
。
這應該是每個生成的PDF中的最后一頁。
現在我想將首頁和文件夾2,3,4和最后一頁中的3個匹配的PDF文件合並為一個PDF。
我開始在網上進行研究,發現這應該是在批處理過程中使用像pdftk
這樣的PDF合並來完成的。
此示例FOR循環組中的每個迭代在一行中具有相同前綴的問題接近我的。 但不同之處在於我有不同的文件夾,並且進程應該在名稱的末尾而不是在開頭查找匹配的數據。
有人可以幫忙嗎?
我根本沒有這個領域的經驗,但我盡力盡力進入這個話題。
下面的演示批處理代碼演示了如何操作
#
雙引號, %%~nx#
(文件名和文件擴展名)分成兩部分,因為tokens=1*
基於第一個下划線,因為delims=_
在文件名中
1
被分配給循環變量I
,它沒有被進一步使用 J
之后的所有內容,這是I
在ASCII表格中的下一個字符 演示代碼:
@echo off
set "SourceFolder=C:\Temp"
for %%# in ("%SourceFolder%\Folder 2\*") do (
for /F "tokens=1* delims=_" %%I in ("%%~nx#") do (
echo "%SourceFolder%\Folder 1\Front Page.pdf" "%%#" "%SourceFolder%\Folder 3\2_%%J" "%SourceFolder%\Folder 4\3_%%J" "%SourceFolder%\Folder 5\LastPage.pdf" "%SourceFolder%\%%J"
)
)
set "SourceFolder="
C:\\Temp
中文件夾2中兩個文件1_abcd_123.pdf
和1_ghi_675.pdf
的輸出為:
"C:\Temp\Folder 1\Front Page.pdf" "C:\Temp\Folder 2\1_abcd_123.pdf" "C:\Temp\Folder 3\2_abcd_123.pdf" "C:\Temp\Folder 4\3_abcd_123.pdf" "C:\Temp\Folder 5\LastPage.pdf" "C:\Temp\abcd_123.pdf"
"C:\Temp\Folder 1\Front Page.pdf" "C:\Temp\Folder 2\1_ghi_675.pdf" "C:\Temp\Folder 3\2_ghi_675.pdf" "C:\Temp\Folder 4\3_ghi_675.pdf" "C:\Temp\Folder 5\LastPage.pdf" "C:\Temp\ghi_675.pdf"
我沒有下載,安裝和閱讀文檔的PDFTK 。 因此,最終需要的是代替命令ECHO將5個輸入PDF文件合並到一個新的輸出PDF文件中,必須由您自己找到。
要了解使用的命令及其工作方式,請打開命令提示符窗口,執行以下命令,並完全閱讀為每個命令顯示的所有幫助頁面。
echo /?
for /?
set /?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.