PythonでPDFを異なる画像フォーマットに変換

概要

この記事では、Pythonを使用してPDFを異なる画像フォーマットに変換する方法について説明します。以下のトピックをカバーしています。

画像フォーマット: TIFF

画像フォーマット: BMP

画像フォーマット: EMF

画像形式: JPG

画像形式: PNG

画像形式: GIF

画像形式: SVG

PythonでPDFを画像に変換

Aspose.PDF for Python は、PDFを画像に変換するためにいくつかのアプローチを使用します。 一般的に、私たちは2つのアプローチを使用します: デバイスアプローチを使用した変換と、SaveOptionを使用した変換です。このセクションでは、これらのアプローチのいずれかを使用して、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ページを1つのTIFF画像に変換

Aspose.PDF for Pythonは、PDFファイル内のすべてのページを1つのTIFF画像に変換する方法を説明します:

手順: PythonでPDFをTIFFに変換

  1. Documentクラスのオブジェクトを作成します。

  2. TiffSettingsTiffDeviceオブジェクトを作成します。

  3. TiffDevice.Process() メソッドを呼び出して、PDF ドキュメントを TIFF に変換します。

  4. 出力ファイルのプロパティを設定するには、TiffSettings クラスを使用します。

次のコードスニペットは、すべての PDF ページを単一の TIFF 画像に変換する方法を示しています。



from asposepdf import Api, Device

# ライセンスの初期化
documentName = "testdata/license/Aspose.PDF.PythonviaJava.lic"
licenseObject = Api.License()
licenseObject.setLicense(documentName)

# PDF ドキュメントを開く
DIR_INPUT = "testdata/"
DIR_OUTPUT = "testout/"
input_pdf = DIR_INPUT + "source.pdf"
output_image = DIR_OUTPUT + "image.tiff"
# PDF ドキュメントを開く
document = Api.Document(input_pdf)
# Resolution オブジェクトを作成
resolution = Device.Resolution(300)

# TiffSettings オブジェクトを作成
tiffSettings = Device.TiffSettings()
tiffSettings._CompressionType = Device.CompressionType.LZW
tiffSettings._ColorDepth = Device.ColorDepth.Default
tiffSettings._Skip_blank_pages = False

# TIFF デバイスを作成
tiffDevice = Device.TiffDevice(resolution, tiffSettings)

# 特定のページを変換し、画像をストリームに保存
tiffDevice.process(document, output_image)

Convert PDF using ImageDevice class

ImageDeviceは、BmpDeviceJpegDeviceGifDevicePngDevice、および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)

  1. Document クラスを使用してPDFファイルを読み込む。
  2. ImageDevice のサブクラスのインスタンスを作成する。すなわち、
  3. PDFから画像への変換を実行するために、ImageDevice.Process() メソッドを呼び出す。

PDFをBMPに変換

from asposepdf import Api, Device

DIR_INPUT = "testdata/"
DIR_OUTPUT = "testout/"

input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# PDFドキュメントを開く
document = Api.Document(input_pdf)

# 解像度オブジェクトを作成
resolution = Device.Resolution(300)
device = Device.BmpDevice(resolution)

for i in range(0, document.getPages.size):
    # 保存するためのファイル名を作成
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.bmp"
    # 特定のページを変換し、画像をファイルに保存
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

PDFをEMFに変換


from asposepdf import Api, Device

DIR_INPUT = "../../testdata/"
DIR_OUTPUT = "../../testout/"

input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# PDFドキュメントを開く
document = Api.Document(input_pdf)

# 解像度オブジェクトを作成
resolution = Device.Resolution(300)
device = Device.EmfDevice(resolution)

for i in range(0, document.getPages.size):
    # 保存するためのファイル名を作成
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.emf"
    # 特定のページを変換し、ファイルに画像を保存
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

PDFをJPEGに変換


from asposepdf import Api, Device

DIR_INPUT = "../../testdata/"
DIR_OUTPUT = "../../testout/"

input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# PDFドキュメントを開く
document = Api.Document(input_pdf)

# 解像度オブジェクトを作成
resolution = Device.Resolution(300)
device = Device.JpegDevice(resolution)

for i in range(0, document.getPages.size):
    # 保存するためのファイル名を作成
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.jpeg"
    # 特定のページを変換し、ファイルに画像を保存
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

PDFをPNGに変換


from asposepdf import Api, Device

DIR_INPUT = "../../testdata/"
DIR_OUTPUT = "../../testout/"

input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# PDFドキュメントを開く
document = Api.Document(input_pdf)

# 解像度オブジェクトを作成
resolution = Device.Resolution(300)
device = Device.PngDevice(resolution)

for i in range(0, document.getPages.size):
    # 保存用のファイル名を作成
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.png"
    # 特定のページを変換し、画像をファイルに保存
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

PDFをGIFに変換


from asposepdf import Api, Device

DIR_INPUT = "../../testdata/"
DIR_OUTPUT = "../../testout/"

input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# PDFドキュメントを開く
document = Api.Document(input_pdf)

# 解像度オブジェクトを作成
resolution = Device.Resolution(300)
device = Device.GifDevice(resolution)

for i in range(0, document.getPages.size):
    # 保存用のファイル名を作成
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.gif"
    # 特定のページを変換し、画像をファイルに保存
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

SaveOptionsクラスを使用してPDFを変換

この記事のこの部分では、PythonとSaveOptionsクラスを使用してPDFをSVGに変換する方法を示します。

スケーラブルベクターグラフィックス (SVG) は、二次元ベクターグラフィックスのためのXMLベースのファイル形式の仕様群であり、静的および動的(インタラクティブまたはアニメーション)なものです。SVG仕様は、1999年以来、ワールドワイドウェブコンソーシアム(W3C)によって開発されているオープン標準です。

SVG画像とその動作はXMLテキストファイルで定義されています。これは、検索、インデックス作成、スクリプト化、必要に応じて圧縮が可能であることを意味します。XMLファイルとして、SVG画像は任意のテキストエディタで作成および編集できますが、通常はInkscapeなどの描画プログラムで作成する方が便利です。

Aspose.PDF for Pythonは、SVG画像をPDF形式に変換する機能をサポートしており、PDFファイルをSVG形式に変換する機能も提供しています。 この要件を達成するために、SvgSaveOptions クラスが Aspose.PDF 名前空間に導入されました。SvgSaveOptions のオブジェクトをインスタンス化し、それを Document.Save() メソッドの第2引数として渡します。

以下のコードスニペットは、PythonでPDFファイルをSVG形式に変換する手順を示しています。

手順: PythonでPDFをSVGに変換

  1. Document クラスのオブジェクトを作成します。
  2. 必要な設定で SvgSaveOptions オブジェクトを作成します。
  3. Document.Save() メソッドを呼び出し、SvgSaveOptions オブジェクトを渡してPDFドキュメントをSVGに変換します。

PDFをSVGに変換


from asposepdf import Api

documentName = "testdata/input.pdf"
doc = Api.Document(documentName, None)
documentOutName = "testout/out.svg"
doc.save(documentOutName, Api.SaveFormat.Svg)