こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

LinuxのコマンドラインでPDFの編集について

既にあるPDFで、1ページのみまたは複数ページで、用紙サイズは不確定です。
Linuxのコマンドラインから指定場所に指定した文字を入力するための良い方法はありませんでしょうか?
既にあるPDFと、入力したい文字の記載のあるPDFを背景処理の様に重ねてしまう
事は出来たのですが、もっとシンプルに出来ないかと模索しています。
宜しくお願いいたします。

投稿日時 - 2018-01-22 21:44:20

QNo.9421186

困ってます

質問者が選んだベストアンサー

pdfはhtmlなどと同じデータ記述言語ですので、viやemacs、geditなどのテキストエディタで作成・編集が可能です。つまり、コマンドラインでバッチ処理もできるということです。
技量のない人はオフィス系ソフトが必須なのですね…。
とはいっても、ISOの仕様書は750ページもあるそうでこれを学習するのは難儀です。幸い、ファイルフォーマットを噛み砕いて説明してくれるサイトもあります。
http://itchyny.hatenablog.com/entry/2015/09/16/100000
http://www.pdf-tools.trustss.co.jp/Syntax/fileStructOvv.html
ただ、これでもちょっと自分でやってみようという気にはならないかも。
そこで、PDFを扱うためのライブラリとして有名なのがitextです。
https://itextpdf.com
javaのライブラリなのでlinuxにjavaがインストールされている必要があります。

それでも、javaでプログラムを組むのは大変とお考えなら、
latexで挿入したい文字だけのpdfを生成し、cui上のpdf操作では一般的なpdftkを使って元のpdfと重ね合わせるという方法もあります。

幸い、スクリプトを公開してくれているサイトがあります。
http://d.hatena.ne.jp/aki-yam/20100121/1264099509
少し加工すれば目的が果たせるのではないかと思います。

投稿日時 - 2018-01-23 15:35:55

お礼

的確なアドバイスありがとうございます。
インターネットで色々探したのですが探しきれなかったのでお聞きしました。
お聞きする前に、ApachePDFBOXでLinuxのCUIからjavaの動く環境で画像を重ねる方法を試してみた所うまくいったのですが、PDFの用紙サイズ毎に表示位置を変えたり、縦横の判別をしたり大変そうだったので別の視点から良い方法が無いかお聞きしたかったのですが、色々な方法と、仕様書のお話が大変為になりました。
この度はありがとうございました。

投稿日時 - 2018-01-23 21:42:05

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

Linuxのコマンドラインで使えるPDFtkで 
PDFの連結・分割・テキストの取り出し・背景画像の追加 等の加工はできるのですが、
文字の挿入というのは、ちょっと難しいようです。

PHPに FPDIというライブラリがあって、これを使うと
既存のPDFをテンプレートにして読み込むことができ、
それにFPDFまたはTCPDFを使って、文字・画像を追加して新規のPDFが作ることができます。
(PHP以外にもJavaでも似たようなことは可能なようですが私自身は経験はありません)

そういうPHPスクリプトをコーディングして
コマンドラインでそのPHPスクリプトを実行すれば 
言われていることは可能だと思いますよ。
 

投稿日時 - 2018-01-23 15:35:57

お礼

centos7を利用していますので、PDFktは駄目だとネットでかくにんしました。
PHPやjavaでやるにしても、ballvilleさんが仰っている仕様書を理解しないと難しそうですね。
可能だと思うと言われましたが、私も可能だとは思います。
お返事ありがとうございました。

投稿日時 - 2018-01-23 21:48:14

ANo.2

>Linuxのコマンドラインから指定場所に指定した文字を入力するための良い方法はありませんでしょうか?
ありません。
あなたが言っている「コマンドライン」とは何のことですか?
一般的には端末(Terminal)からコマンドを投入してコンピューターに目的の作業をさせることです。
PDFファイルはAdobe社のAcrobatと言う文書作成ソフトで作成されたファイルのことです。
これの編集はAcrobatまたは互換の文書作成ソフトを使わないと完全なものができません。

>既にあるPDFと、入力したい文字の記載のあるPDFを背景処理の様に重ねてしまう事は出来たのですが、
それで良いと思います。
お手持ちの文書作成ソフトを活用するか、フリーソフトの文書作成ソフトで自分の力量に合わせて処理してください。(Office系のソフトを使う)

投稿日時 - 2018-01-23 09:16:57

お礼

ご回答ありがとうございました。
この度は説明不足もありました。LinuxのGUI環境が無いためCUIでの
方法を
模索しておりました。

投稿日時 - 2018-01-23 21:51:17

ANo.1

>もっとシンプルに出来ないかと模索しています。

LibreOffice DRAW でどうでしょうか。
コマンドラインより簡単でシンプルです。
マルチプラットフォーム対応です。
用紙サイズは幅広く対応可能。
複数ページ対応は、いったん任意のページをpdfで出力しておいて編集すればいいです。
DRAWで編集後、pdfエクスポートすればpdf保存できます。

投稿日時 - 2018-01-23 00:53:36

お礼

この度は説明不足もありましたが参考になりました。
LinuxのGUI環境が無いためCUIでの方法を模索しておりました。
LibreOfficeを使うと言うのは考えませんでした。
ご回答ありがとうございました。

投稿日時 - 2018-01-23 21:53:31

あなたにオススメの質問