PDF

提供:Turgenev's Wiki
2023年11月24日 (金) 19:55時点におけるTurgenev (トーク | 投稿記録)による版 (Notion-MW)

pdfを扱う方法について。

pdftkとcpdf

pdftkは有能だが、cpdfはさらに強い

pdftk

  • 切り出し

    pdftk hoge.pdf cat 1 3-5 output fuga.pdf

cpdf

非商用に限りhttps://community.coherentpdf.com/ このcommunityバージョンが無料で使える

概要はhttp://pdf-file.nnn2.com/?p=892 、具体的なコマンド例は http://pdf-file.nnn2.com/?p=1025 など参照

例えば、「1,5ページ目のサイズを縦横とも半分にして出力したい」ときは

cpdf input.pdf 1,5 -scale-page "0.5 0.5" -o output.pdf

とする。一方で、「1,5ページ目のサイズを縦横とも半分にして1, 5ページ目のみを出力したい」ときは

cpdf input.pdf 1,5 AND -scale-page "0.5 0.5" -o output.pdf

のようにANDを入れるといいっぽい。

  • -remove-fontsで埋め込みフォントを除去できる。ただしAcrobat Readerでの表示とかはかなりおかしくなる(Chromeならいけてたりする)

Adobe reader

  • 「文書」メニューの前回のビュー設定を復元をしておくとよい。これをクラウドで共有できたりすると便利かもしれないができるかどうか不明。→ https://superuser.com/questions/83935/pdf-where-does-acrobat-reader-save-information-about-last-view-settings によると レジストリの HKCU\Software\Adobe\Acrobat Reader\9.0\RememberedViewsにあるらしい。見てみたら今は \HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\DC\RememberedViewsっぽい。15ファイルが上限?Recent自体は100個保存してるみたいだが

上書き保存なのに毎回ダイアログが出て不快。設定から「ファイルを保存するときにオンラインストレージを表示」を外すと良い(というよりマシな)感じになる(無駄なクリック数が減る)。保護モードを解除すれば即座に上書き保存できるようだが、セキュリティリスクがありそうなのでやめておいた。

Alt+方向キーで進む戻るはできるが、Logicoolのマウスの進む戻るは効かなかったので、Logicool Optionsをインストールしてアプリケーション個別の設定をした

Shift+Enterで次に移動できるようにするためにAutoHotKeyで

#IfWinActive ahk_class AcrobatSDIWindow
+Enter::^+G
#IfWinActive

と書いて起動しておく

暗号化(編集の禁止)の解除

qpdfで--decryptをする

結合

pdftk *.pdf cat output out.pdf compress

compressはなくてもいい気がする。あるとサイズが増えることさえあった(?)

圧縮

https://zat.ifdef.jp/html/2010/09-17.html

ghostscriptの/defaultがかなりよさそう?

重ね合わせ

pdftkなら(multi)stamp/background https://satiseni.hateblo.jp/entry/2020/07/28/105907 ただ、全文検索ができない? (他の2つはできた)

qpdfだと--underlayとか--overlay

cpdfならstamp-onとかcombine-pages https://www.coherentpdf.com/cpdfmanual/cpdfmanualch8.html

PDF/Aへの変換

https://stackoverflow.com/questions/1659147/how-to-use-ghostscript-to-convert-pdf-to-pdf-a-or-pdf-x

しおり(table of contents)

https://superuser.com/questions/311388/how-can-the-table-of-contents-in-a-pdf-file-be-edited によるとJPdfBookmarksがよさそうだった(使ってみたが実際よかった、GPLだし)、pdfModとかいうのもいつか使ってみるかも

JPdfBookmarks

しおり情報をdumpしたファイルを編集するとよい、open/closedというのはしおりが折りたたまれているべきかどうかを指定するっぽい

FitPageにするとジャンプしたときに必ずビューアの表示サイズが調整されて1ページが画面に収まるよう変更されてしまう。FitWidthだと「幅に合わせる」になる。直したいときはTopLeftZoom,0,0,0.0 にするとよい。ただし手間がかかるし、普通に全画面で見るならそこまで不便はないかも。

あと普通にpdftkも使えるっぽい(djvuのところでも引用したhttps://bobbielf2.github.io/blog/2017/04/11/preserve-the-table-of-contents-when-converting-a-book-from-djvu-to-pdf/など参照)

PDF→SVG

pdftocairoというのがlatexに入っている。ここも参照。

pdftocairoを呼び出す設定をVSCodeのLaTeX拡張に書けばよい。 LaTeX を参照。

あと、Inkscapeでもできるはず。

djvuの表示、pdfへの変換

djvulibreを入れる(Winもある)

bookmarkに関してはhttps://bobbielf2.github.io/blog/2017/04/11/preserve-the-table-of-contents-when-converting-a-book-from-djvu-to-pdf/ にあるPythonコードを改変したものを用いる

OCR

ocrmypdfを使おう

OCRデータだけにする

ghostscriptを使うと画像とアウトラインデータを消せるので実質的に不可視テキストだけになる https://askubuntu.com/questions/477663/how-to-remove-images-from-a-pdf-file