PDF最初のページが空であるか、役に立たない表紙であるファイルを頻繁に受け取ります。すばやく効率的な方法(Applescript、サービス、または??)を提案できますか? ?)最初のページだけを削除してファイルを保存するには?
これがプレビューまたはAdobeAcrobat Professionalを介して自動化できる場合は、それが最も理想的です。
何か案は?
Automatorワークフローを使用してこれを行うことができます。ほとんどの場合よりも少し複雑なので、実装するときは注意してください。
この投稿にはtwoバージョンが含まれています。1つは短く、出力をProcessed PDF File.pdf
としてデスクトップに保存し、もう1つは長く、ファイルを(Edited)
InputFileName.pdf
として同じディレクトリに保存します。長いバージョンにのみ必要な手順には、(オプション)のマークが付いています。
Automatorを開き、任意のアプリケーションの入力としてPDFファイルを受け取る新しいサービスを作成することを選択します。
FilePath
という名前を付けます。(オプション)AppleScriptの実行アクションを追加し、次のスクリプトコードを使用して、ファイルが配置されているフォルダー名を取得します。
on run {input, parameters}
tell application "Finder" to return (container of first item of input) as alias
end run
(オプション)変数の値の設定アクションを追加し、変数にFolder
という名前を付けます。
FilePath
を返します。 Optionsでのこのアクションの入力は無視してください。(オプション)シェルスクリプトの実行アクションを追加し、入力を渡します引数として。次のスクリプトを使用して、ファイルのベース名を抽出します。
echo "$( basename "$1" )"
(オプション)変数の値の設定アクションを追加し、変数にFileName
という名前を付けます。
(オプション)変数の値の取得アクションを追加し、変数にFilePath
という名前を付けます。 Optionsでのこのアクションの入力は無視してください。
PDF to Imagesアクションを追加し、出力をデスクトップまたは一時ファイルを保持できる任意のフォルダーに保存します。好きな名前を付けてください。
TempFiles
という名前を付けます。Run AppleScriptアクションを追加し、次のスクリプトコードを使用して、一時ファイルのリストをフィルタリングします(ここで最初のページを削除します)。
on run {input, parameters}
return rest of input
end run
Combine PDF pagesアクションを追加して、appending pagesによってピースを再度まとめます。
Folder
変数への参照をドラッグアンドドロップします。zOpY3O.pdf
。これは、結合されたPDFファイルに自動的に割り当てられるファイル名です。たとえばName Single Itemを使用し、それにProcessed PDF File
のベース名を付けます。より長いバリアントでは、変数リストからテキストフィールドにFileName
をドラッグし、その直前に(Edited)
を追加します。これで基本的に完了です。クリーンアップする必要があります。TempFiles
の値を取得します。 Optionsでのこのアクションの入力は無視してください。これは、完成した長いバージョンのワークフローのスクリーンショットです。
前述の コマンドラインPDFツール )を使用して、次のワークフローをコンパイルすることができました。
最初に、指示に従ってPDFツールをインストールしました。この場合の主要なツールはpdfsplitです。
Automatorで、選択したPDFファイルをFinderで受信するための新しいサービスを作成しました。
シェルを「/ 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
削除や名前の変更など、シェルスクリプトですべてを実行できたと思います。ただし、rmコマンドは危険な場合があるため、代わりに元のファイルをゴミ箱に移動することをお勧めします。
スクリプトは、単にxページを削除する以上のことを行うように変更できます。たとえば、PDFをバッチトリミングして組み合わせるのと同様のプログラムを開発しました。詳細については、pdfsplitとそれに付随するツールのマニュアルを確認してください。
Joseph Yannielliが提供した回答に追加するだけで、シェルスクリプトを実行することにした人にとっては、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
別のフォーラムの誰かが開発しました いくつか コマンドラインPDFツール 、ページを削除するものを含みます。比較的簡単に見えました。唯一の可能性しゃっくりは、ワークフローでどのように機能するかを示している可能性があります。説明から、PDFが開いていて、これらのツールは閉じたファイルで(より良く)機能しているように見えます。