GNU/Linux >> Linux の 問題 >  >> Linux

pdftk-javaコマンドでPDFを編集する4つの方法

テクノロジーのホワイトペーパー、原稿、RPGの本の間で、私は毎日たくさんのPDFを扱っています。 PDF形式は、処理されたPostScriptコードが含まれているため人気があります。 PostScriptは最新のプリンターの母国語であるため、出版社は、とにかく印刷用のファイルを作成するための時間と労力に投資したため、書籍のデジタル版をPDFとしてリリースすることがよくあります。ただし、PDFは編集可能な形式を意図したものではなく、逆の処理も可能ですが、デジタルデータがプリンターに送信される前の最後の停止となることを目的としています。それでも、PDFを調整する必要がある場合があり、その仕事で私のお気に入りのツールの1つはpdftk-javaコマンドです。

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

Linuxにpdftk-javaをインストールする

その名前が示すように、 pdftk-java はJavaで記述されているため、Javaがインストールされている限り、すべての主要なオペレーティングシステムで動作します。

LinuxおよびmacOSユーザーは、AdoptOpenJDK.netからJavaをインストールできます。 Windowsユーザーは、RedHatのOpenJDKのWindowsビルドをインストールできます。

pdftk-javaをインストールするには :

1. pdftk-all.jarリリースをGitlabリポジトリからダウンロードし、〜/ .local / bin /に保存します。 またはパス内の他の場所。

2. 〜/ .bashrcを開きます お気に入りのテキストエディタで、次の行を追加します:

alias pdftk='java -jar $HOME/.local/bin/pdftk-all.jar'

3.新しいBash設定をロードします:

$ source ~/.bashrc

コマンド構文

有効なpdftk-javaの構造 コマンドはパターンに従いますが、パターンの内容には多くの柔軟性があります。従来のスタイルの端末オプションを使用しないため、構文は少し変わっていますが、練習すれば、覚えるのはそれほど難しくありません。

  • pdftk :コマンドを呼び出すためのエイリアス
  • 入力ファイル:変更するPDF
  • アクション:入力ファイルに対して実行したいこと
  • 出力:変更したPDFファイルを保存する場所

最も複雑なのはアクション部分なので、簡単なタスクから始めます。

2つのPDFファイルを1つに結合

本の表紙がInkscapeやGIMPなどの別のアプリケーションで作成されることは珍しくありません。これは通常、ScribusなどのレイアウトアプリケーションやLibreOfficeなどのオフィススイートで行われます。レイアウトアプリケーションで2つを組み合わせることができます。 Scribusのような優れたデスクトップパブリッシャーは、画像を参照するだけで簡単にできるので、表紙が変更されたときに、レイアウトが自動的に更新されます。ただし、 pdftk-javaを使用してPDFの前に表紙を追加することもできます。 :

$ pdftk cover.pdf body.pdf \
cat \
output book.pdf

この例では、アクションは catです。 、連結のように Linux catコマンドと同様に、1つ以上のPDFファイルを単一のデータストリームに連結し、データストリームは outputの任意のファイルに送信されます。 引数で指定します。

PDFからページを削除する

PDFからページを正確に削除することはできませんが、保持したいページのみを含む新しいPDFを作成することはできます。

$ pdftk book.pdf \
cat 1 3-end \
output shorter-book.pdf

この例では、私の本のファイルの1ページ目、および3から最後までのすべてのページが新しいファイルに保存されます。したがって、削除したページは2ページ目です。

PDFを別々のファイルに分割する

PDFファイルを多くの異なるファイルに分割する場合もcatを使用します アクションであり、原則としてページの削除に似ています。必要なページを新しいファイルに送信することでPDFを分割できます:

$ pdftk book.pdf \
cat 1-15 \
output part-1.pdf

$ pdftk book.pdf \
cat 16-42 \
output part-2.pdf

PDFを単一ページのファイルに分割する必要がある場合は、バーストと呼ばれる特別なアクションがあります。 :

$ pdftk book.pdf burst

$ ls
book.pdf pg_0001.pdf pg_0002.pdf
pg_0003.pdf pg_0004.pdf pg_0005.pdf
[...]

フォームに記入

PDF形式が何年にもわたって肥大化していないと主張する人はほとんどいません。PDFファイルに時々見られる機能の1つは、入力可能なフォームです。これは、米国の税務書類、RPGキャラクターシート、オンラインの学校のワークブック、およびインタラクティブを目的としたその他のPDFファイルで確認できます。 GNOMEのEvinceやKDEのOkularなどの最新のPDFビューアは、PDFフォームに入力できますが、 pdftk-javaを使用してPDFフォームに入力することもできます。 。

まず、 generate_fdfを使用してフォームデータを抽出する必要があります アクション。これにより、フォーム要素のIDが抽出され、テキストファイルに配置されます。

$ pdftk character-sheet.pdf \
generate_fdf \
output chsheet-form.txt

宛先ファイル(この例では、 chsheet-form.txt )には、PDFに含まれているフォームのデータが含まれていますが、テキスト部分のみが含まれています。 AtomやGeditなどの標準のテキストエディタで編集できます。

PDFを作成している組織のワークフローを垣間見ると、見事なこともあれば厄介なこともありますが、一部のフォームには明確にラベルが付けられていますが、他のフォームには「Checkbox_001」や「Textfield-021」などのデフォルト名が付いているため、クロスする必要があります。 -テキストファイルをPDFで参照しますが、フォームに自動的に入力するスクリプトを作成している場合は、それだけの価値があります。各ラベルは/Tとしてマークされています アイテムであり、次の行にスペースがあります( / V としてマークされています) )テキスト入力用に提供されています。これは、ラベルへのコンテキストといくつかのデータが入力されたものからのスニペットです:

/T (CharacterName 2)
/V (Abaddon)
>>
<<
/T (SlotsTotal 24)
/V ()
>>
<<
/T (Hair)
/V (Brown)
>>
<<
/T (AC)
/V (15)
>>
<<
/T (Background)
/V ()
>>
<<
/T (DEXmod )
/V ()

フォームデータを入力したら、テキスト入力とPDF構造を fill_formで組み合わせることができます。 アクション:

$ pdftk character-sheet.pdf \
fill_form chsheet-form.txt \
output completed.pdf

結果のサンプルは次のとおりです。

PDFの変更が簡単になりました

シェルスクリプトを介して大量のPDFファイルまたはPDFファイルを処理する場合、 pdftk-javaのようなツール すべてを手動で行う必要がなくなるため、非常に貴重です。 Docbookの出力からPDFを作成すると、 pdftk-javaを呼び出すMakefileになります。 任意の数のタスクに対して、ステップを忘れたり、コマンドの入力を間違えたりする可能性はなく、それに時間を費やす必要もありません。 pdftk-javaを使用する理由は他にもたくさんあります あなた自身のワークフローで、そして他の多くのもの pdftk-java shuffleなどのアクションを含めて実行できます 、回転 dump_data update_info 、および attach_files 。 PDFファイルを頻繁に扱う場合は、 pdftk-javaを指定してください。 試してみてください。


Linux
  1. Nmapでできることはすべてここにあります–コマンドの例

  2. Lsでアンカー^$を使用できますか?

  3. Bash の「test」コマンドでの「&&」と「&」の比較

  1. Linuxcronコマンドを使用したタスクのスケジューリング

  2. Linuxコマンドラインで写真を編集する4つの方法

  3. Linux の cp コマンドで正規表現をどのように使用しますか?

  1. Linuxatコマンドでタスクをスケジュールする

  2. LinuxコマンドラインでPDFを編集する

  3. LinuxのIPツールでできる3つの便利なこと