PDFをPythonで異なる画像形式に変換する
概要
この記事では、Pythonを使用してPDFを異なる画像形式に変換する方法を説明します。以下のトピックをカバーしています。
画像形式: TIFF
画像形式: BMP
画像形式: EMF
画像形式: JPG
画像形式: PNG
画像形式: GIF
画像形式: SVG
PythonでPDFを画像に変換
Aspose.PDF for Python は、PDFを画像に変換するためにいくつかのアプローチを使用します。 一般的に言って、私たちは2つのアプローチを使用します: Deviceアプローチを使用した変換とSaveOptionを使用した変換です。このセクションでは、これらのアプローチの1つを使用してPDFドキュメントをBMP、JPEG、GIF、PNG、EMF、TIFF、SVG形式の画像に変換する方法を示します。
ライブラリには、仮想デバイスを使用して画像を変換することを可能にするいくつかのクラスがあります。DocumentDeviceはドキュメント全体の変換を対象としていますが、ImageDeviceは特定のページ用です。
DocumentDeviceクラスを使用してPDFを変換
Aspose.PDF for Python はPDFページをTIFF画像に変換することを可能にします。
TiffDevice (DocumentDeviceに基づく)クラスは、PDFページをTIFF画像に変換することを可能にします。このクラスは、PDFファイル内のすべてのページを単一のTIFF画像に変換することを可能にするprocessという名前のメソッドを提供します。
PDFをTIFFにオンラインで変換してみてください Aspose.PDF for Python via .NETは、オンラインで無料のアプリケーション“PDF to TIFF”を提供しており、機能と品質を調査することができます。
PDFページを1つのTIFF画像に変換
Aspose.PDF for Pythonは、PDFファイル内のすべてのページを単一のTIFF画像に変換する方法を説明します:
-
Documentクラスのオブジェクトを作成します。
-
TiffSettingsとTiffDeviceオブジェクトを作成します。
-
PDFドキュメントをTIFFに変換するためにprocessメソッドを呼び出します。
-
出力ファイルのプロパティを設定するために、TiffSettingsクラスを使用します。
以下のコードスニペットは、すべてのPDFページを単一のTIFF画像に変換する方法を示しています。
import aspose.pdf as ap
input_pdf = DIR_INPUT + "sample.pdf"
output_pdf = DIR_OUTPUT + "convert_pdf_to_tiff.tiff"
# PDFドキュメントを開く
document = ap.Document(input_pdf)
# 解像度オブジェクトを作成
resolution = ap.devices.Resolution(300)
# TiffSettingsオブジェクトを作成
tiffSettings = ap.devices.TiffSettings()
tiffSettings.compression = ap.devices.CompressionType.LZW
tiffSettings.depth = ap.devices.ColorDepth.DEFAULT
tiffSettings.skip_blank_pages = False
# TIFFデバイスを作成
tiffDevice = ap.devices.TiffDevice(resolution, tiffSettings)
# 特定のページを変換し、画像をストリームに保存
tiffDevice.process(document, output_pdf)
ImageDeviceクラスを使用してPDFを変換する
ImageDevice
はBmpDevice
、JpegDevice
、GifDevice
、PngDevice
、EmfDevice
の祖先です。
-
BmpDeviceクラスを使用すると、PDFページをBMP画像に変換できます。
-
EmfDeviceクラスを使用すると、PDFページをEMF画像に変換できます。
-
JpegDeviceクラスを使用すると、PDFページをJPEG画像に変換できます。
-
PngDeviceクラスを使用すると、PDFページをPNG画像に変換できます。
-
GifDeviceクラスを使用すると、PDFページをGIF画像に変換できます。
以下は、PDFページを画像に変換する方法を見てみましょう。
BmpDevice クラスは、PDFファイルの特定のページをBMP画像形式に変換することを可能にする process という名前のメソッドを提供します。他のクラスも同じメソッドを持っています。したがって、PDFページを画像に変換する必要がある場合は、必要なクラスをインスタンス化するだけです。
以下の手順とPythonでのコードスニペットは、この可能性を示しています。
手順: PythonでPDFを画像(BMP, EMF, JPG, PNG, GIF)に変換
- Document クラスを使用してPDFファイルをロードします。
- ImageDevice のサブクラスのインスタンスを作成します。例えば、
- BmpDevice (PDFをBMPに変換)
- EmfDevice (PDFをEmfに変換)
- JpegDevice (PDFをJPGに変換)
- PngDevice (PDFをPNGに変換)
- GifDevice (PDFをGIFに変換)
- ImageDevice.Process() メソッドを呼び出して、PDFから画像への変換を実行します。
PDFをBMPに変換
import aspose.pdf as ap
input_pdf = DIR_INPUT + "many_pages.pdf"
output_pdf = DIR_OUTPUT + "convert_pdf_to_bmp"
# PDFドキュメントを開く
document = ap.Document(input_pdf)
# Resolutionオブジェクトを作成
resolution = ap.devices.Resolution(300)
device = ap.devices.BmpDevice(resolution)
for i in range(0, len(document.pages)):
# 保存用のファイルを作成
imageStream = io.FileIO(
output_pdf + "_page_" + str(i + 1) + "_out.bmp", 'x'
)
# 特定のページを変換し、画像をストリームに保存
device.process(document.pages[i + 1], imageStream)
imageStream.close()
PDFをEMFに変換
import aspose.pdf as ap
input_pdf = DIR_INPUT + "sample.pdf"
output_pdf = DIR_OUTPUT + "convert_pdf_to_emf"
# PDFドキュメントを開く
document = ap.Document(input_pdf)
# 解像度オブジェクトを作成
resolution = ap.devices.Resolution(300)
device = ap.devices.EmfDevice(resolution)
for i in range(0, len(document.pages)):
# 保存するファイルを作成
imageStream = io.FileIO(
output_pdf + "_page_" + str(i + 1) + "_out.emf", 'x'
)
# 特定のページを変換し、画像をストリームに保存
device.process(document.pages[i + 1], imageStream)
imageStream.close()
PDFをJPEGに変換
import aspose.pdf as ap
input_pdf = DIR_INPUT + "many_pages.pdf"
output_pdf = DIR_OUTPUT + "convert_pdf_to_jpeg"
# PDFドキュメントを開く
document = ap.Document(input_pdf)
# 解像度オブジェクトを作成
resolution = ap.devices.Resolution(300)
device = ap.devices.JpegDevice(resolution)
for i in range(0, len(document.pages)):
# 保存するファイルを作成
imageStream = io.FileIO(
output_pdf + "_page_" + str(i + 1) + "_out.jpeg", "x"
)
# 特定のページを変換し、画像をストリームに保存
device.process(document.pages[i + 1], imageStream)
imageStream.close()
PDFをPNGに変換
import aspose.pdf as ap
input_pdf = DIR_INPUT + "sample.pdf"
output_pdf = DIR_OUTPUT + "convert_pdf_to_png"
# PDFドキュメントを開く
document = ap.Document(input_pdf)
# Resolutionオブジェクトを作成
resolution = ap.devices.Resolution(300)
device = ap.devices.PngDevice(resolution)
for i in range(0, len(document.pages)):
# 保存用のファイルを作成
imageStream = io.FileIO(
output_pdf + "_page_" + str(i + 1) + "_out.png", 'x'
)
# 特定のページを変換し、ストリームに画像を保存
device.process(document.pages[i + 1], imageStream)
imageStream.close()
PDFをGIFに変換
import aspose.pdf as ap
input_pdf = DIR_INPUT + "many_pages.pdf"
output_pdf = DIR_OUTPUT + "convert_pdf_to_gif"
# PDFドキュメントを開く
document = ap.Document(input_pdf)
# Resolutionオブジェクトを作成
resolution = ap.devices.Resolution(300)
device = ap.devices.GifDevice(resolution)
for i in range(0, len(document.pages)):
# 保存用のファイルを作成
imageStream = io.FileIO(
output_pdf + "_page_" + str(i + 1) + "_out.gif", 'x'
)
# 特定のページを変換し、ストリームに画像を保存
device.process(document.pages[i + 1], imageStream)
# ストリームを閉じる
imageStream.close()
PDFをPNGにオンラインで変換してみる
無料アプリケーションの動作例として、次の機能を確認してください。
Aspose.PDF for Pythonは、オンライン無料アプリケーション“PDF to PNG”を提供しており、その機能や品質を調査することができます。
SaveOptionsクラスを使用してPDFを変換する
この記事のこの部分では、PythonとSaveOptionsクラスを使用してPDFをSVGに変換する方法を示します。
PDFをSVGにオンラインで変換してみる
Aspose.PDF for Python via .NETは、オンライン無料アプリケーション“PDF to SVG”を提供しており、その機能や品質を調査することができます。
スケーラブルベクターグラフィックス (SVG) は、静的および動的(インタラクティブまたはアニメーション)の両方の二次元ベクターグラフィックのためのXMLベースのファイル形式の仕様ファミリーです。SVG仕様は、1999年以来World Wide Web Consortium (W3C)によって開発されているオープン標準です。
SVG画像とその動作はXMLテキストファイルで定義されています。これは、それらが検索、インデックス化、スクリプト化され、必要に応じて圧縮されることを意味します。XMLファイルとして、SVG画像は任意のテキストエディタで作成および編集できますが、Inkscapeのような描画プログラムで作成する方が便利です。
Aspose.PDF for Pythonは、SVG画像をPDF形式に変換する機能をサポートしており、PDFファイルをSVG形式に変換する機能も提供しています。 この要件を達成するために、SvgSaveOptions クラスが Aspose.PDF 名前空間に導入されました。SvgSaveOptions のオブジェクトをインスタンス化し、それを Document.Save() メソッドの第二引数として渡します。
以下のコードスニペットは、Python で PDF ファイルを SVG 形式に変換する手順を示しています。
- Document クラスのオブジェクトを作成します。
- 必要な設定で SvgSaveOptions オブジェクトを作成します。
- Document.Save() メソッドを呼び出し、SvgSaveOptions オブジェクトを渡してPDF文書をSVGに変換します。
PDFをSVGに変換する
import aspose.pdf as ap
input_pdf = DIR_INPUT + "sample.pdf"
output_pdf = DIR_OUTPUT + "convert_pdf_to_svg.svg"
# PDFドキュメントを開く
document = ap.Document(input_pdf)
# SvgSaveOptionsのオブジェクトをインスタンス化する
saveOptions = ap.SvgSaveOptions()
# SVG画像をZipアーカイブに圧縮しない
saveOptions.compress_output_to_zip_archive = False
saveOptions.treat_target_file_name_as_directory = True
# 出力をSVGファイルに保存する
document.save(output_pdf, saveOptions)