PDFからTIFF画像に変換するとファイルサイズはどうなる?
PDFをTIFF形式に変換する必要がある場面、たとえば、印刷用のデータ作成や画像加工を行う際に直面する疑問のひとつが「ファイルサイズは大きくなるのか、小さくなるのか?」という点です。
ここでは、PDFとTIFFの基本的な違いを解説しつつ、Pythonを使った実際の変換手順や、ファイルサイズを最適化する方法を紹介します。
PDFとTIFFの基本的な違い
まず、PDFとTIFFの違いを理解しておきましょう。
PDFの特徴
- ベクター形式をサポート: 線や図形がデータとして保存されるため、拡大縮小しても画質が劣化しません。
- テキスト中心でも軽量: 埋め込まれたフォントと構造化データで構成されるため、ページ数が多くても比較的軽量です。
- 圧縮形式の選択: ZIPやJPEGのような圧縮が適用されている場合があります。
TIFFの特徴
- ラスター形式(ピクセルベース): ページ全体が画像として保存されるため、高品質な画像が得られます。
- 柔軟な圧縮方法: LZW(可逆圧縮)やJPEG(非可逆圧縮)などが選べます。
- 高品質だが容量が大きくなりがち: 非圧縮や高解像度の設定では特にファイルサイズが増加します。
PDFからTIFFに変換したときのサイズ変化を決めるポイント
PDFをTIFFに変換するとき、以下の要因がサイズに大きく影響します。
解像度(DPI)
TIFFはラスター形式なので、解像度(DPI: dots per inch)が直接サイズに影響します。
- 高解像度(300 DPI以上): 印刷用に適しているが、ファイルサイズが大きくなる。
- 低解像度(150 DPI以下): サイズは小さくなるが、画質が落ちる。
圧縮形式
- 非圧縮: サイズが非常に大きくなるが画質は最高。
- LZW圧縮: 可逆圧縮で画質を保ちながらサイズを削減。
- JPEG圧縮: 非可逆圧縮でさらに小さくなるが、画質に劣化が生じる。
PDFの内容
- テキスト中心のPDF: サイズはPDFのほうが小さい場合が多い。
- 画像中心のPDF: TIFFに変換して圧縮すると、ファイルサイズを削減できる可能性あり。
Pythonを使ったPDFからTIFFへの変換手順
PDFをTIFF形式に変換する簡単なコードを紹介します。
ライブラリのインストール
pip install pdf2image
変換コード
以下のコードでは、解像度(DPI)と圧縮形式を指定してPDFをTIFFに変換します。
from pdf2image import convert_from_path
def convert_pdf_to_tiff(input_pdf: str, output_tiff: str, dpi=150):
try:
# PDFを画像リストとして読み込む
images = convert_from_path(input_pdf, dpi=dpi)
# 複数ページの場合、最初のページをTIFFとして保存
images[0].save(output_tiff, format='TIFF', save_all=True, append_images=images[1:])
print(f"PDFをTIFFに変換しました: {output_tiff}")
except Exception as e:
print(f"エラーが発生しました: {e}")
# 使用例
input_pdf = "input.pdf"
output_tiff = "output.tiff"
convert_pdf_to_tiff(input_pdf, output_tiff, dpi=150)
コードのポイント
convert_from_path関数でPDFを読み込み、各ページを画像リストとして取得します。saveメソッドで、複数ページを1つのTIFFファイルとして保存します。
エラーが発生する場合
実行すると「エラーが発生しました: cannot identify image file ‘input.pdf’」とエラーが出る場合
「cannot identify image file 'input.pdf'」というエラーは、Pillow(Python Imaging Library)が指定されたPDFファイルを画像として正しく読み込めない場合に発生します。この問題の原因と解決方法を以下に整理しました。
原因
- PillowがPDFサポートを有効にしていない
PillowはデフォルトではPDFファイルの読み込みに対応していません。PDFサポートにはpoppler-utilsやGhostscriptなどの外部ライブラリが必要です。 - 入力ファイルが実際にはPDFではない
ファイルの形式が正しくない、または破損している可能性があります。 - ファイルパスが間違っている
input.pdfのパスが正しく指定されていない場合、エラーが発生します。
解決方法
必要なライブラリのインストール
PDFサポートを有効にするため、以下の外部ツールをインストールします。
・Linux
sudo apt update
sudo apt install poppler-utils
・Windows
- Poppler for Windowsをダウンロードし、パスを環境変数に追加してください。
Poppler Downloads
・Mac
brew install poppler
サイズを最適化するコツ
- 用途に応じた解像度設定
- 印刷用なら300 DPI以上を推奨。
- ウェブ用やストレージ節約なら150 DPI以下が適切。
- 圧縮方式の選択
- LZW圧縮: 画質を保ちながらサイズを削減。
- JPEG圧縮: サイズを大幅に削減したい場合に有効。
- PDF内容に応じた調整
- 画像中心のPDFならJPEG圧縮が有効。
- テキスト中心の場合、PDF形式のままのほうが軽量になる可能性あり。
まとめ
PDFをTIFFに変換することで印刷や画像加工に対応できますが、ファイルサイズが小さくなるかは内容や設定次第です。
ここで紹介したPythonコードを使えば、用途に応じた最適なTIFFファイルを簡単に作成できます。ぜひ試してみてください!

コメント