adbird(広告鳥) 備忘録

pdfデータ編集

随時、更新。


分割、ページ入れ替え

$ pdftk 入力.pdf cat ページ番号(1 3 2 4 などでページ入れ替え) output 出力.pdf

追記:分割については、pdftkでいちいちやらなくても(時々、エラーもでるし)、Ubuntuのドキュメントビューアー(Evince)で、 印刷>ファイルに出力する でやったほうが簡単だった…。

PDFデータをバラバラの画像にする

$ pdftoppm 入力.pdf -rx 350 -ry 350 image 

上記では解像度350dpi。

参考:【 pdftoppm 】コマンド――PDFファイルを画像に変換する

結合

$ pdftk 入力1.pdf 入力2.pdf cat output 出力.pdf

複数画像を1つのPDFに結合

imagemagickではエラーが出て失敗したが、GraphicsMagickならできた。

フォルダ内に連番のjpgを入れて、

$ gm convert *.jpg 出力.pdf

回転

$ pdftk 入力.pdf cat 1-endeast output 出力.pdf

1-end…全ページ。 east…90度回転。 eastのところをsouthに変えたら180度回転。

回転(pdftkの回転でエラーが出た場合)

$ mogrify -rotate 90 入力.pdf

mogrifyはデータを上書き保存するので、実行前に必ずバックアップを取る。

PDFデータサイズを縮小する

$ gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=出力.pdf 入力.pdf`

ページサイズを揃える

一つのPDFファイルの中に、たとえばA4のページとB5のページがごちゃまぜになってしまっている場合に、全てのページをB5サイズに揃える手順。

  • Ubuntuのドキュメントビューアー(Evince)で、 印刷 > ファイルに出力する
  • 出力先のファイルを決定する
  • ページの設定 > 用紙サイズ をB5(JIS)
  • ページの取り扱い > ページの拡大縮小:印刷可能な領域に合わせる
  • 自動回転して中央揃え にチェックを入れる
  • 印刷

PDFデータ同士を重ねる(簡単な文字入力)

$ pdftk 前面.pdf background 背景.pdf output 出力.pdf

既存のPDFの端などに簡単な文字入力をしたい場合、LibreOfficeのWriterなどでおおよその場所に文字を書いて、PDFデータ(背景.pdf)として出力後、上記コマンドを使って、元のPDFデータと重ねる。

$ pdftk 元データ.pdf stamp スタンプ.pdf output 出力.pdf

スタンプとして既存のPDFデータの前面にスタンプとして重ねるには上記のコマンド。

これを活用して、PDFのページの上部にちょっとしたテキストを入れるスクリプトを作った。

余白をとる

pdfcrop で以下のようにする。

$ pdfcrop --margins '5 5 5 5' input.pdf output.pdf

2アップ(用紙1枚に2 ページ分を収める)

pdfjam が必要。

$ pdfnup 入力.pdf --outfile 出力.pdf --paper a4paper --nup 2x1

面付け

A5縦書き原稿PDFを、A4用紙・小冊子面付けしたPDFに - adbird(広告鳥) 備忘録を参照のこと。

ページ番号を追加

addpageスクリプトをインストール。

$ sudo apt install python3-pip
$ pip3 install addpage

たぶん/home/〜/.local/bin/の部分はユーザー名)に addpage というスクリプトが入っているはずなので、実行。

$ python3 /home/〜/.local/bin/addpage -o output.pdf input.pdf

pdf を cbz へ変換

任意のフォルダ内にpdfデータと、以下の内容のスクリプト pdftocbz.sh を作成して

for file in *.pdf
do
    name="${file%.pdf}"
    echo "Converting $name to cbz"
    mkdir "./$name"
    pdftoppm -jpeg "$file" "./$name/000" -r 300
    zip -r6 "${name}.cbz" "./$name" 
    rm -rf "./$name"
done

スクリプト実行

$ sh pdftocbz.sh

参照:linux で pdf を cbz形式に変換する - マイブーム=メイプル

PDFにかかっているパスワードを削除して編集可能にする

pdftkでpdfを結合しようとしたら

WARNING: The creator of the input PDF:
   002.pdf
   has set an owner password (which is not required to handle this PDF).
   You did not supply this password. Please respect any copyright.

とエラーがでた。

編集できないようにパスワードがかっているらしい。

ドキュメントビューア(evince )で 印刷 > ファイルに出力する
で別のpdfにすれば、編集可能なpdfとなる。

参考:How Do I Use evince To Remove The Password?

エラー対応