#author("2025-01-24T04:18:59+09:00","default:Miyashita","Miyashita") #author("2025-01-24T04:19:25+09:00","default:Miyashita","Miyashita") *画像PDFの結合 [#s1461234] **このメモの残そうと思った経緯。。。 [#fee7f15e] **このメモを残そうと思った経緯。。。 [#fee7f15e] 論文用の図をPDFとして書き出すことはよくあるのだが,2枚のPDF図が別々のソフトウェア(MATLAB と GMT など)で作らねばならない時が多々ある.それをベクター画像のまま結合したい時がちょっと厄介だった.~ imagemagick などでも試してみたのだが,ベクター画像のまま1枚にする方法は不明のまま.~ ~ **結合して1ページのPDF画像にまとめる方法 [#r320eca8] なんだかまわりくどい方法になってしまったが,辿り着いたコマンドは下記の通り. #codeprettify{{ pdf_in1="upper.pdf" pdf_in2="lower.pdf" pdf_out="output.pdf" pdftk $pdf_in1 $pdf_in2 cat output tmp1.pdf pdfxup -x 1 -y 2 -fw 0 -ow -o tmp2.pdf tmp1.pdf pdfcrop --margins '0 0 0 0' tmp2.pdf $pdf_out rm tmp*.pdf }} 最初の pdftk で2つのPDFを結合したPDFを作る.2つ結合したので2ページ構成になる.~ その次に pdfxup で複数ページのPDFを1つのページにまとめる. -fw はフレームの線が残らないようにする.-ow は overwrite の許容.この pdfxup で余白が出てしまうのをどうにかしたかったが,オプションを色々やってみてもダメだったので pdfcrop に任せることにした.~ 最後の pdfcrop でいい感じに切り取ってくれる.~ ~ 3つ以上をくっつけて1つにしたい場合も,オプションの意味を理解しつつ同様に行えばOK.~ ~ **中央揃えで複数枚のPDF画像を縦に連結 [#k63dfba0] 画像ごとに横幅が異なる場合に1枚ごとに綺麗に縁取りすると,連結した時に中央揃えでなくなってしまう.~ そこをなんとかするのが下記. #codeprettify{{ pdf1="upper.pdf" pdf2="lower.pdf" pdf_out="output.pdf" # 幅を揃える pdfjam --outfile tmp1.pdf --paper a4paper --fitpaper true $pdf1 pdfjam --outfile tmp2.pdf --paper a4paper --fitpaper true $pdf2 # PDFを連結 pdftk tmp1.pdf tmp2.pdf cat output tmp3.pdf # 2ページを1ページに並べる pdfxup -x 1 -y 2 -fw 0 -ow -o tmp4.pdf tmp3.pdf # トリミング pdfcrop --margins '0 0 0 0' tmp4.pdf $pdf_out # 一時ファイルを削除 rm tmp*.pdf }}