24 Aug 2025

国会図書館デジタルコレクションからダウンロードした画像PDFがセブンでプリントできなかった。その対策。

 セブンでプリントしようとしたら、原稿サイズが非対応と表示されて印刷できなかった。

PDFのバージョンは1.7でファイルサイズは12MBだった。

Puppy Linux fossapupには元々qpdfが入っているようだが、コマンドが見つからないので、パッケージマネージャーでqpdfだけauto installしたら使えるようになった。

コマンドは下の一発だけ。


PDFのバージョンを変えたい

# qpdf --force-version=1.6 in.pdf out.pdf


pdftkで印刷する箇所だけ抜き出せばファイルサイズを小さくできる。上記でバージョンを下げるまではpdftkで予期せぬエラーがでて抽出できなかった。

分割したPDFでもプリントできなかった。またプリントできたPDFにはバージョンが1.7のものもあった。Wifiやネットプリントで無い場合、ファイルの容量制限がないらしい。

PDFからjpgで変換して、画像のプロパティを見てみると「5168x3761」ピクセルだった。

A3に適するのは300dpiの時、3508×4961ピクセル。

これが原因ではないか?試しに画像のサイズをピクセルで半分にしたところプリンとできた。


imagemagickをインストールした。画像を統合してPDFにするために設定ファイルを編集する。

参照サイト


/etc/policy.xmlの末尾辺りの

<policy domain="coder" rights="none" pattern="PDF" />

の"none"を"read/write"に変更する。

<policy domain="coder" rights="read/write" pattern="PDF" />


次にフォルダ内のjpegファイルをpdfにまとめるために、使用するメモリ量を増やす。

<policy domain="resource" name="memory" value="256MiB"/>

"256MiB"を"2GiB"に変更する。

<policy domain="resource" name="memory" value="2GiB"/>


PDFファイルから画像を抽出し、リサイズしてからPDFにまとめ上げるシェルスクリプトを書いた。


!/bin/sh

#################################################################

#国会図書館デジタルコレクションからダウンロードしたファイルは5168*3761ピクセルある。

#セブンイレブンでは原稿サイズが非対応と表示されてプリントできなかった。

#画像サイズを半分にしたところ印刷できた。

#このシェルスクリプトではx25841880位に縮小する

#300dpiの時のA3(4961x3508)だが原稿サイズが非対応と表示されてプリントできなかった。

#################################################################

#使用方法

# ./Shrinker.sh Filename

#######################################

#引数のチェック

#######################################

if [ "$1" = "" ]

then

echo "No Filename."

exit

fi

#######################################

#実行

#######################################

#最後に生成されるPDFファイルのファイル名を準備

#引数を取得

Filename=$1


#取得した引数から拡張子を削除

Filename2=${Filename/.pdf/}


#echo "argument is : $Filename"

#echo "file name is : $Filename2"


#ファイル名の末尾に追加

Filename3=$Filename2'Shrinked.pdf'

#echo "New file name is : $Filename3"

########################################

#作業用ディレクトリの作成

TMP_DIR=$(mktemp -d)

echo "Working in temporal directory: $TMP_DIR"


#PDFファイルをjpeg画像に変換

pdftoppm -jpeg $Filename $TMP_DIR/output


#jpeg画像をリサイズ

mogrify-im6.q16 -path "$TMP_DIR/" -resize x1880 "$TMP_DIR//*.jpg"


#jpeg画像をPDFにまとめる

convert-im6.q16 "$TMP_DIR/*jpg" $Filename3

echo "PDF file has been created: $Filename3"


#作業用ディレクトリの削除

rm -r "$TMP_DIR"

echo "Deleted temporal directory."