随時、更新。基本、Linuxのアプリを使用する方法。
- PDF文書に線を引いたり、書き込みをしたりする
- 分割、ページ入れ替え
- PDFデータをバラバラの画像にする
- 結合
- 複数画像を1つのPDFに結合
- 回転
- PDFデータサイズを縮小する
- ページサイズを揃える
- PDFデータ同士を重ねる(簡単な文字入力)
- 余白をとる
- 2アップ(用紙1枚に2 ページ分を収める)
- 面付け
- ページ番号を追加
- pdf を cbz へ変換
- PDFにかかっているパスワードを削除して編集可能にする
- エラー対応
PDF文書に線を引いたり、書き込みをしたりする
Xournal
Xournalというソフトを使う。
Ubuntuでは以下でインストールできる。
$ sudo apt install xournal
線を引いたり、テキストを追加したりした編集データは、拡張子「.xoj」として保存され、元のPDFデータはそのままなので、安心。
もちろん、元のPDFデータと書き込みなどの編集データ(.xoj)を結合させて、新たなPDFデータにエクスポートさせることも可能。
Windows版について
ダウンロードしてきたzipファイルを解凍。 ローカルディスク(C:)直下に解凍した「xournal-0.4.8.2016-win32」をフォルダごとコピー。
フォルダ内にある「xournal.exe」をダブルクリックすると、起動する。xournal.exeのショートカットをデスクトップ上に置いておくか、タスクバーにピン留めしておくといい。
既存のPDFを開くには、xournal を起動してから、左上のメニューから File > Open で。
Windows版のみの問題
日本語入力時の文字化け問題
- キーボードで日本語入力する際には、フォント(Tools > Text Font)を日本語フォント(MS GothicやYu Gothic)にしておかないと、入力時に文字化けする。
日本語を含む「.xoj」ファイルが直接開けない問題
- 日本語文字化けの影響であろうが、保存した「.xoj」ファイル名に日本語が入っていると、「.xoj」ファイルを直接ダブルクリックで開こうとすると、エラーが出て開けない。
xournal を起動してから、左上のメニューから File > Open で開けば、大丈夫。
Xournal++
Xournalからフォークされたもので、こちらのほうが高機能らしい。Ubuntu18.04では以下でインストール可能。
$ sudo snap install xournalpp
Windows版は2021年4月2日現在、キーボードでの日本語入力ができない。
分割、ページ入れ替え
$ pdftk 入力.pdf cat ページ番号(1 3 2 4 などでページ入れ替え) output 出力.pdf
追記:分割については、pdftkでいちいちやらなくても(時々、エラーもでるし)、Ubuntuのドキュメントビューアー(Evince)で、 印刷>ファイルに出力する でやったほうが簡単だった…。
PDFデータをバラバラの画像にする
$ pdftoppm 入力.pdf -rx 350 -ry 350 image
上記では解像度350dpi。
参考:【 pdftoppm 】コマンド――PDFファイルを画像に変換する
結合
pdfunite
$ pdfunite 入力.pdf 入力.pdf 出力.pdf
任意のディレクトリ内の全てのPDFを結合する場合
$ pdfunite *.pdf 出力.pdf
pdftk
$ pdftk 入力1.pdf 入力2.pdf cat output 出力.pdf
複数画像を1つのPDFに結合
imagemagickではエラーが出て失敗したが、GraphicsMagickならできた。
フォルダ内に連番のjpgを入れて、
$ gm convert *.jpg 出力.pdf
回転
pdftk
$ pdftk 入力.pdf cat 1-endeast output 出力.pdf
1-end…全ページ。 east…90度回転。 eastのところをsouthに変えたら180度回転。
mogrify(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
オプションはaddpage · PyPIを参考に。例えば、フォントサイズを8ptにするときは、-z 8
をつける。
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?