⛳
【python】TIFFファイルをPDFに変換する方法
執筆日
2024/12/20
やること
TIFF形式のファイルを扱う機会がありましたが、TIFFを扱う環境が整っておらず、中身だけ確認したかったため、PythonでPDFに変換する方法をまとめます。TIFFには高品質な画像保存の利点があるため、本来はそのままの拡張子で使用することをお勧めします。
TIFFとは?
TIFF(Tagged Image File Format)は、主に高品質な画像を保存するための柔軟なファイル形式です。Adobe Photoshopなどの画像編集ソフトウェアとも互換性があります。利用シーンとしては、印刷や出版業界、スキャナ、ファクシミリ、アーカイブ目的、医療用画像などが挙げられます。
単一ページのTIFFをPDFに変換する方法
以下のPythonコードは、単一ページのTIFFファイルをPDFに変換する方法を示しています。
from PIL import Image
input_tiff = "<tifのファイルパス>"
output_pdf = "<outputのファイルパス(pdf)>"
def tiff_to_pdf(input_tiff_path, output_pdf_path):
try:
with Image.open(input_tiff_path) as img:
img = img.convert("RGB") if img.mode in ("RGBA", "P") else img
img.save(output_pdf_path, "PDF")
print(f"TIFFファイルをPDFに変換しました: {output_pdf_path}")
except Exception as e:
print(f"エラーが発生しました: {e}")
if __name__ == "__main__":
tiff_to_pdf(input_tiff, output_pdf)
複数ページのTIFFをPDFに変換する方法
次のPythonコードは、複数ページのTIFFファイルをPDFに変換する方法を示しています。
from PIL import Image
input_tiff = "<tifのファイルパス>"
output_pdf = "<outputのファイルパス(pdf)>"
def multi_page_tiff_to_pdf(input_tiff_path, output_pdf_path):
try:
with Image.open(input_tiff_path) as img:
pages = []
for i in range(img.n_frames):
img.seek(i)
pages.append(img.convert("RGB"))
pages[0].save(output_pdf_path, save_all=True, append_images=pages[1:], format="PDF")
print(f"TIFFをPDFに変換しました: {output_pdf_path}")
except Exception as e:
print(f"エラーが発生しました: {e}")
if __name__ == "__main__":
multi_page_tiff_to_pdf(input_tiff, output_pdf)
まとめ
TIFFファイルは高品質な画像を保存するのにとても便利ですが、環境が整っていないと扱いにくいこともあります。そんなときは、Pythonを使ってPDFに変換してみるのもありかなと。TIFFの特性を活かしつつ、必要に応じてPDFに変換して使い分けると便利です。
Discussion