チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
TIFF は、高品質であり、幅広いカラースペースをサポートしているため、スキャンやアーカイブで使用される一般的な画像形式です。一方、PDF は、ファイルサイズを圧縮しながらドキュメントのレイアウトと書式を保持するため、ドキュメント交換に広く使用されています。これらの形式間の変換は、アーカイブ、編集、またはドキュメント共有など、さまざまな目的で役立ちます。
この記事では、Spire.PDF for Python と Pillow ライブラリを使用して、PDF を TIFF に変換する方法と、TIFF を PDF に変換する方法を学びます。
この方法は、Spire.PDF for Python と Pillow(PIL)の組み合わせに依存します。Spire.PDF は PDF ドキュメントの読み取り、作成、および変換に使用され、PIL ライブラリは TIFF ファイルの処理およびそのフレームへのアクセスに使用されます。
これらのライブラリは、以下の pip コマンドを使用して簡単にデバイスにインストールできます。
pip install Spire.PDF
pip install pillow
PDF を TIFF に変換するには、まず Spire.PDF を使用して PDF ドキュメントを読み込み、各ページを画像ストリームに変換する必要があります。その後、これらの画像ストリームを PIL ライブラリの機能を使用して結合し、1 つの TIFF 画像にまとめます。
以下は、Python を使用して PDF を TIFF に変換する手順です。
from spire.pdf.common import *
from spire.pdf import *
from PIL import Image
from io import BytesIO
# PdfDocumentオブジェクトを作成
doc = PdfDocument()
# PDFファイルを読み込む
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.pdf")
# PIL画像を格納するリスト
images = []
# すべてのページをループ処理
for i in range(doc.Pages.Count):
# ページを画像ストリームに変換
with doc.SaveAsImage(i) as imageData:
# PIL画像として読み込む
img = Image.open(BytesIO(imageData.ToArray()))
# リストに追加
images.append(img)
# マルチページTIFFとして保存
images[0].save("Output/ToTIFF.tiff", save_all=True, append_images=images[1:])
# リソース解放
doc.Dispose()

PIL ライブラリの助けを借りて、TIFF ファイルを読み込み、各フレームを個別の PNG ファイルに変換できます。その後、Spire.PDF を使用して、これらの PNG ファイルを PDF ドキュメント内のページに描画できます。
Python を使用して TIFF 画像を PDF ドキュメントに変換するには、以下の手順に従います。
PdfDocument オブジェクトを作成する。
TIFF 画像を読み込む。
TIFF 画像内のフレームを繰り返し処理する。
ドキュメントを PDF ファイルとして保存する。
from spire.pdf.common import *
from spire.pdf import *
from PIL import Image
import io
# PdfDocumentオブジェクトを作成
doc = PdfDocument()
# ページ余白を0に設定
doc.PageSettings.SetMargins(0.0)
# TIFF画像を読み込む
tiff_image = Image.open("C:\\Users\\Administrator\\Desktop\\TIFF.tiff")
for i in range(tiff_image.n_frames):
# フレームを選択
tiff_image.seek(i)
# フレーム画像をコピー
frame_image = tiff_image.copy()
# PNGとして保存
frame_image.save(f"temp/output_frame_{i}.png")
# PdfImageとして読み込む
image = PdfImage.FromFile(f"temp/output_frame_{i}.png")
# 画像サイズを取得
width = image.PhysicalDimension.Width
height = image.PhysicalDimension.Height
# ページを追加
page = doc.Pages.Add(SizeF(width, height))
# 画像を描画
page.Canvas.DrawImage(image, 0.0, 0.0, width, height)
# PDFとして保存
doc.SaveToFile("Output/TiffToPdf.pdf", FileFormat.PDF)
# リソース解放
doc.Dispose()

この記事では、Spire.PDF for Python と Pillow の機能を組み合わせることで、Python を使用して PDF と TIFF 形式の間で変換する方法を説明しました。Spire.PDF の強力な PDF 処理機能と Pillow の柔軟な画像処理を活用することで、PDF から TIFF への変換および TIFF から PDF への変換の両方を効率的に実行できます。
評価メッセージの削除や機能制限の解除をご希望の場合は、営業担当者までお問い合わせのうえ、30日間有効な一時ライセンスを取得してください。
SVG ファイルは、拡大縮小や調整が容易であることから、Web グラフィックスやベクター形式のイラストによく利用されます。一方 PDF は、さまざまなデバイスや OS で幅広くサポートされている汎用性の高い形式です。SVG を PDF に変換することで、受け取る側が特別なソフトウェアを用意したり、ブラウザの互換性を気にする必要なく、グラフィックスやイラストを簡単に共有できます。本記事では、Python で SVG ファイルを PDF 形式に変換する方法を Spire.PDF for Python を用いて解説します。
目次
この操作には Spire.PDF for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.XLS for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.PDF
Spire.PDF for Python では、PdfDocument.LoadFromSvg() メソッドを使用して SVG ファイルを読み込み、PdfDocument.SaveToFile() メソッドで PDF として保存できます。手順は以下の通りです。
from spire.pdf import PdfDocument, FileFormat
# PdfDocument オブジェクトを作成
doc = PdfDocument()
# SVG ファイルを読み込む
doc.LoadFromSvg("Sample.svg")
# SVG を PDF 形式に保存
doc.SaveToFile("output/ConvertSvgToPdf.pdf", FileFormat.PDF)
# PdfDocument オブジェクトを閉じる
doc.Close()

Spire.PDF for Python では、SVG を PDF に直接変換するだけでなく、既存の PDF に任意の位置へ追加することも可能です。手順は以下の通りです。
from spire.pdf import PdfDocument, PointF, FileFormat
# PdfDocument オブジェクトを作成
doc1 = PdfDocument()
# SVG ファイルを読み込む
doc1.LoadFromSvg("Sample.svg")
# SVG 内容を基にテンプレートを作成
template = doc1.Pages.get_Item(0).CreateTemplate()
# 別の PdfDocument オブジェクトを作成
doc2 = PdfDocument()
page = doc2.Pages.Add()
# 読み込んだ PDF の 1 ページ目に、テンプレートを指定位置に描画
page.Canvas.DrawTemplate(template, PointF(10.0, 100.0))
# 結果を保存
doc2.SaveToFile("output/AddSvgToPdf.pdf", FileFormat.PDF)
# PdfDocument オブジェクトを閉じる
doc2.Close()
doc1.Close()

もし PDF に他の種類の画像を挿入したい場合は、Python で PDF に画像を追加・削除・置換する方法をご参照ください。
生成した文書から評価用の透かしを削除したい場合や、機能制限を解除したい場合は、30 日間有効の試用ライセンスを申請してください。