• ベストアンサー

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

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

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

  • ベストアンサー
  • ballville
  • ベストアンサー率47% (233/487)
回答No.3

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 少し加工すれば目的が果たせるのではないかと思います。

tessin333
質問者

お礼

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

その他の回答 (3)

回答No.4

Linuxのコマンドラインで使えるPDFtkで  PDFの連結・分割・テキストの取り出し・背景画像の追加 等の加工はできるのですが、 文字の挿入というのは、ちょっと難しいようです。 PHPに FPDIというライブラリがあって、これを使うと 既存のPDFをテンプレートにして読み込むことができ、 それにFPDFまたはTCPDFを使って、文字・画像を追加して新規のPDFが作ることができます。 (PHP以外にもJavaでも似たようなことは可能なようですが私自身は経験はありません) そういうPHPスクリプトをコーディングして コマンドラインでそのPHPスクリプトを実行すれば  言われていることは可能だと思いますよ。  

tessin333
質問者

お礼

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

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

>Linuxのコマンドラインから指定場所に指定した文字を入力するための良い方法はありませんでしょうか? ありません。 あなたが言っている「コマンドライン」とは何のことですか? 一般的には端末(Terminal)からコマンドを投入してコンピューターに目的の作業をさせることです。 PDFファイルはAdobe社のAcrobatと言う文書作成ソフトで作成されたファイルのことです。 これの編集はAcrobatまたは互換の文書作成ソフトを使わないと完全なものができません。 >既にあるPDFと、入力したい文字の記載のあるPDFを背景処理の様に重ねてしまう事は出来たのですが、 それで良いと思います。 お手持ちの文書作成ソフトを活用するか、フリーソフトの文書作成ソフトで自分の力量に合わせて処理してください。(Office系のソフトを使う)

tessin333
質問者

お礼

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

  • kteds
  • ベストアンサー率42% (1876/4424)
回答No.1

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

tessin333
質問者

お礼

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

関連するQ&A

  • コマンドラインがわかりません!!

    (質問) (1)コマンドラインというのがわかりません。 (2)下の説明のところが全部わかりません。 よろしくおねがいします!! -------------------------------------------------- (説明) ファイルを処理するとき、ファイル名指定はコマンドラインから行うのが便利です。Javaではコマンドライン引数はmain( )メソッドの引数として次のように用意されています。 public static void main (String args[ ]) { ・・・・・ } このargs引数を使うと、コマンドラインから入力されたパラメーターを次のように取得できます。 最初のパラメーター文字列は0です。 args.length args[0] args[1] args [2]  ・  ・  ・

    • ベストアンサー
    • Java
  • コマンドライン上で確定した文字を表示させない方法(Linux)

    コマンドライン上で自分が入力、確定した文字を 表示させない(残さない)ようにできる関数やコマンドはありませんか? 具体的には fgetsで入力→printfで表示 という流れで fgetsで入力した文字がエンターキーで確定した瞬間に消えて その行が後に残らないようにしたいのですが…。 -echoとは違い、入力時(エンターキーでの確定前)には 通常通り表示させたいです。 どなたかご回答お願い致します。

  • コマンドラインから開きたい

    フォルダオプションをコマンドラインから入力して、直接開きたいのですが、可能でしょうか?そのときのコマンドはどう指定すればよいでしょうか?お願い致します。

  • コマンドラインの実行について

    最近LINUXを始めたものです。よろしくお願いいたします。 フラッシュプレイヤーのLinuxをダウンロードして、インストールしようとしているのですが、Macromediaのページを見ると、 「ファイルを展開すると、"install_flash_player_7_linux" ディレクトリが生成されます。このディレクトリにアクセスし、コマンドラインに「./flashplayer-installer」と入力してインストーラーを実行します。(メモ: この手順はコマンドラインからのみ実行可能です。)インストーラーからすべてのブラウザを閉じるよう指示があるので、この指示に従います。」 と出ていますが、コマンドラインとはどうやって実行するのでしょうか?Fedora Core4で、GUIを使用しています。 http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash

  • 【Linux/Fedora】コマンドライン画面の文字サイズは変えられないですか?

    Linux(Fedora8) 初心者です。 コマンドライン(CUI)画面で操作する場合、ちょっと文字が大きすぎるなあ、と思うのですがこれは変えられないものなのでしょうか? 文字が小さければもっと広い範囲が見れるのに… といった趣旨なのですが。 グラフィック画面(GUI)でコマンドをうつという方法もあるでしょうがそれはなしということで… 「無理」という回答でも結構です。 よろしくお願いいたします。

  • コマンドライン引数の例外処理について

    整数a、bをコマンドライン引数として受け取るプログラムを作成するとします。この時、入力するコマンドライン引数を整数であるa、b2つのみとします。 次の事柄について教えて下さい。 (1)コマンドライン引数を2個入力しなかった時の例外処理の仕方 (例えば、コマンドライン引数を入力しなかったり3個入力した時) (2)整数のコマンドライン引数を入力しなかった時の例外処理の仕方 (例えば、「abc」などと入力した場合) (3)コマンドライン引数を数の小さいものから入力しなかった時の処理の仕方 (例えば、「3 5」ではなく「5 3」と入力した場合) 初心者なもので…。どなたかお教え下さい。宜しくお願いします。

    • ベストアンサー
    • Java
  • Linuxのコマンドラインの引数の%(パーセント)文字について

    Linuxのコマンドラインの引数の%(パーセント)文字について /usr/share/application のファイルのプロパティ-ランチャを見るとコマンドの引数に’%+アルファベット’が出てきます. これらは何をいみしているのかお教えください. [例] firefox %u gedit %U khexedit -caption "%c" %i %m %U klamav %i %m -caption "%c"

  • VBAでPDFをページ指定して印刷したい

    お世話になります。 ---------- <実現したいこと> Excel VBAを用いて、PDFファイルを印刷したい。 PDFファイルは、ページ指定をしたい。原則として最初のページと任意指定のページの2ページを印刷する。 できれば、1枚の用紙に2ページを印刷したいが、こちらは優先順位は低い。 <努力したこと> VBA上で、コマンドラインを使ってPDFを単純に印刷するまでは出来た。 だが、ページ指定のオプションが見つからない。もしかして存在しないのだろうか? コマンドライン以外でも構わないので、実現できる方法があれば知りたい。 <条件> 会社のWindows PCを利用している。 Adobe Acrobat PRO DCがインストールされている。 外部のソフトをインストールすることは難しい。 ---------- その他、不明な点がありましたら追記します。 よろしくお願いいたします。

  • 【CentOS5.2】コマンドラインにて実行したい

    CentOS5.2を使用しています。 エフセキュアというウイルス対策ソフトをインストールしたいと 思っています。 ライセンスは持っていまして、ソフト名は 「エフセキュア Linux セキュリティ コマンドライン エディション Ver7.02」 というものです。 ダウンロードしたところ、以下のように書かれていました。 >管理者 root で以下のコマンドを実行することで、F-Secure アンチウィルス >Linuxサーバ版からの上書きインストールによる移行が行えます >また、新規インストールの場合にも同様に --command-line-only >オプションを指定してください。 ># ./f-secure-linux-security-7.02.73807 --command-line-only >プロキシに関する設定は再度行ってください。その他の設定は引き継がれます。 新規のインストールなので、上のコマンドを実行すれば良いのだろうと 思ったのですが、私のLinuxはGUIで操作しているため、 どのようにしたら、コマンドで実行できるかが分かりませんでした。 Windowsであれば、[ファイルを指定して実行]を選んで、 「cmd」と打って[OK]ボタンをクリックすれば、コマンドの入力ができると 思います。 これと同じことをしたいと思っているのですが、 どのようにしたら良いか教えて頂けませんか? ぜひよろしくお願い致します。

  • ファイルをコマンドラインから生成

    symfonyのプロジェクト、アプリケーション等をコマンドラインから作るのですが、コマンドラインから作られたファイルの文字コードがS-JISになってしまい、うまく動作してくれません。symfonyに限らず何でもそうだと思うのですが、コマンドラインからファイルを作る場合、その生成されるファイルの文字コードを指定するにはどうしたらよいのでしょうか?よろしくお願いいたします。