我經常收到 PDF 文件,其中第一頁要么是空的,要么只是我沒有用的封面頁。您能為我建議一種快速有效的方法(Applescript、Service 或???)來刪除第一頁並儲存檔案嗎?
如果這可以透過 Preview 或 Adobe Acrobat Professional 自動化,那就是最理想的。
有任何想法嗎?
答案1
您可以使用自動機工作流程。它比大多數都複雜一點,所以在實現時要小心。
這篇文章包含二版本:一個較短並將輸出儲存Processed PDF File.pdf
在桌面上,另一個較長並將檔案儲存為(Edited)
InputFileName.pdf
在同一目錄中。僅標記了較長版本所需的步驟(選修的)。
打開自動機並選擇建立一個新的服務接收PDF 文件作為輸入任何應用程式。
- (選修的)添加一個設定變數值操作並命名變數
FilePath
。 (選修的)添加一個運行AppleScript操作並使用以下腳本程式碼取得檔案所在的資料夾名稱:
on run {input, parameters} tell application "Finder" to return (container of first item of input) as alias end run
(選修的)添加一個設定變數值操作並命名變數
Folder
。- (選修的)添加一個取得變數的值操作並返回變數
FilePath
。忽略此操作的輸入選項。 (選修的)添加一個運行外殼腳本動作和傳遞輸入作為參數。使用以下腳本提取檔案的基本名稱:
echo "$( basename "$1" )"
(選修的)添加一個設定變數值操作並命名變數
FileName
。(選修的)添加一個取得變數的值操作並命名變數
FilePath
。忽略此操作的輸入選項。添加一個PDF 到圖像操作,將輸出儲存到桌面或任何可以儲存臨時檔案的資料夾。根據您的喜好命名它們。
- 添加一個設定變數值操作,以便我們稍後知道要刪除哪些臨時檔案。為變數命名
TempFiles
。 添加一個運行AppleScript操作,並使用以下腳本程式碼來過濾臨時檔案清單(這是我們刪除第一頁的位置):
on run {input, parameters} return rest of input end run
添加一個合併 PDF 頁面將碎片重新組合在一起的動作,透過附加頁面。
- 使用移動查找器項目將產生的文件(重新組合的 PDF)移到桌面或您想要的任何資料夾。如果您決定計算輸入檔案的父資料夾,則可以在此處拖放變數的參考
Folder
。 - 這重新命名查找器項目action 可以為這些檔案提供一個比 eg 更好的檔名
zOpY3O.pdf
,eg 是為合併的 PDF 檔案自動指派的檔案名稱。使用例如名稱 單一項目並給它一個基本名稱Processed PDF File
.如果您選擇使用較長的變體,請FileName
從變數清單拖曳到文字字段,然後(Edited)
在其前面新增。現在我們已經基本完成了,只需要清理一下。 - 添加取得變數的值動作並得到 的值
TempFiles
。忽略此操作的輸入選項。 - 添加一個將查找器項目移至廢紙簍刪除臨時單頁檔案的操作。
以下是已完成的較長版本工作流程的螢幕截圖:
答案2
使用前述的命令列 PDF 工具,我能夠編譯一個執行以下操作的工作流程:
- 取得輸入的 PDF(或多個 PDF)並產生減去第一頁的新文件
- 將原始 PDF 移至垃圾箱
- 重新命名新文件以匹配原始文件
首先我照著說明安裝了PDF工具。本例中的關鍵工具是 pdfsplit。
在 Automator 中,我建立了一項新服務來接收 Finder 中選定的 PDF 檔案。
我新增了“運行 Shell 腳本”操作,其中 shell 為“/bin/bash”,“傳遞輸入”設定為“作為參數”。然後我編寫了以下簡單的腳本:
for f in "$@"
do
/usr/local/bin/pdfsplit "$f" 2- > "$f".tmp
done
我為原始文件添加了“將 Finder 項目移至垃圾箱”操作,並添加了“替換文字”操作以從新文件中刪除 .tmp 擴展名。
要使用資料夾輸入來運行該進程,腳本將類似於:
cd "$@"
for f in *pdf
do
/usr/local/bin/pdfsplit "$f" 2- > "$f".tmp
done
我想我可以在 shell 腳本中完成所有操作,包括刪除和重新命名。但 rm 命令可能很危險,我更喜歡將原始文件移至垃圾箱。
可以修改腳本以執行更多操作,而不僅僅是刪除 x 個頁面。例如,我開發了一個類似的程式來大量裁剪和合併 PDF。請查看 pdfsplit 手冊及其隨附工具以獲取更多資訊。
答案3
另一個論壇有人開發了一些命令列 PDF 工具,包括刪除頁面的功能。看起來相對容易。唯一可能出現的問題可能是它如何與您的工作流程配合使用。從您的描述來看,您似乎可以在 PDF 開啟時使用一些工具,而這些工具似乎可以在關閉的文件中使用(更好)。
答案4
只是為了添加 Joseph Yannielli 提供的答案,對於決定執行 shell 腳本的人來說,在腳本中包含刪除和重命名檔案的命令可能更容易,而不是透過 Automator 添加單獨的操作:
for f in "$@"
do
/usr/local/bin/pdfsplit "$f" 2- > "$f".tmp
rm "$f"
mv "$f".tmp "$f"
done
關於安裝命令列PDF工具的問題,可以使用自製:
brew install pdf-tools