C#でPDFをさまざまな画像形式に変換する
概要
この記事では、C#を使用してPDFを異なる画像形式に変換する方法について説明します。次のトピックをカバーしています。
画像形式: TIFF
画像形式: BMP
画像形式: EMF
画像形式: JPG
画像形式: PNG
画像形式: GIF
画像形式: SVG
C# PDFを画像に変換
以下のコードスニペットは、Aspose.PDF.Drawing ライブラリでも機能します。
Aspose.PDF for .NET は、いくつかのアプローチを使用してPDFを画像に変換します。 Aspose.PDF for .NET は、PDFを画像に変換するためにいくつかのアプローチを使用しています。
このライブラリには、仮想デバイスを使用して画像を変換することを可能にするいくつかのクラスがあります。DocumentDeviceは文書全体の変換向けですが、ImageDeviceは特定のページ向けです。
DocumentDevice クラスを使用してPDFを変換する
Aspose.PDF for .NET は、PDFページをTIFF画像に変換することを可能にします。
TiffDevice(DocumentDeviceに基づく)クラスは、PDFページをTIFF画像に変換することを可能にします。このクラスは Process
というメソッドを提供しており、PDFファイルのすべてのページを単一のTIFF画像に変換することができます。
オンラインでPDFをTIFFに変換してみる
Aspose.PDF for .NETは、無料のオンラインアプリケーション “PDF to TIFF” を提供しており、その機能と品質を試すことができます。
PDFページを1つのTIFFイメージに変換する
Aspose.PDF for .NETについて、PDFファイル内の全ページを単一のTIFFイメージに変換する方法を説明します:
- Document クラスのオブジェクトを作成します。
- TiffSettings と TiffDevice オブジェクトを作成します
- PDFドキュメントをTIFFに変換するために TiffDevice.Process() メソッドを呼び出します。
- 出力ファイルのプロパティを設定するために TiffSettings クラスを使用します。
以下のコードスニペットは、PDFの全ページを単一のTIFFイメージに変換する方法を示しています。
public static void ConvertPDFtoTIFF()
{
// 文書を開く
Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");
// Resolutionオブジェクトを作成
Resolution resolution = new Resolution(300);
// TiffSettingsオブジェクトを作成
TiffSettings tiffSettings = new TiffSettings
{
Compression = CompressionType.None,
Depth = ColorDepth.Default,
Shape = ShapeType.Landscape,
SkipBlankPages = false
};
// TIFFデバイスを作成
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// 特定のページを変換し、イメージをストリームに保存
tiffDevice.Process(pdfDocument, _dataDir + "AllPagesToTIFF_out.tif");
}
PDFの1ページをTIFF画像に変換
Aspose.PDF for .NETは、PDFファイルの特定のページをTIFF画像に変換することができます。変換のためのページ番号を引数として取るProcess(..)メソッドのオーバーロード版を使用します。次のコードスニペットは、PDFの最初のページをTIFF形式に変換する方法を示しています。
手順: C#でPDFの単一または特定のページをTIFFに変換
- Document クラスのオブジェクトを作成します。
- TiffSettings と TiffDevice オブジェクトを作成します
- TiffDevice.Process() メソッドのオーバーロードを fromPage と toPage パラメーターで呼び出し、PDFドキュメントのページをTIFFに変換します。
public static void ConvertPDFtoTiffSinglePage()
{
// ドキュメントを開く
Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");
// Resolutionオブジェクトを作成
Resolution resolution = new Resolution(300);
// TiffSettingsオブジェクトを作成
TiffSettings tiffSettings = new TiffSettings
{
Compression = CompressionType.None,
Depth = ColorDepth.Default,
Shape = ShapeType.Landscape,
};
// TIFFデバイスを作成
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// 特定のページを変換してイメージをストリームに保存
tiffDevice.Process(pdfDocument, 1, 1, _dataDir + "PageToTIFF_out.tif");
}
Bradleyアルゴリズムを変換中に使用する
Aspose.PDF for .NETは、LZW圧縮を使用してPDFをTIFに変換する機能をサポートしており、AForgeを使用して2値化を適用できます。しかし、顧客の一人が画像に対してOtsuを使用してしきい値を取得する必要があるため、Bradleyの使用も希望しています。
public static void ConvertPDFtoTiffBradleyBinarization()
{
// ドキュメントを開く
Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");
string outputImageFile = _dataDir + "resultant_out.tif";
string outputBinImageFile = _dataDir + "37116-bin_out.tif";
// Resolutionオブジェクトを作成する
Resolution resolution = new Resolution(300);
// TiffSettingsオブジェクトを作成する
TiffSettings tiffSettings = new TiffSettings
{
Compression = CompressionType.LZW,
Depth = Aspose.Pdf.Devices.ColorDepth.Format1bpp
};
// TIFFデバイスを作成する
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// 特定のページを変換して画像をストリームに保存する
tiffDevice.Process(pdfDocument, outputImageFile);
using (FileStream inStream = new FileStream(outputImageFile, FileMode.Open))
{
using (FileStream outStream = new FileStream(outputBinImageFile, FileMode.Create))
{
tiffDevice.BinarizeBradley(inStream, outStream, 0.1);
}
}
}
ImageDevice クラスを使用して PDF を変換する
ImageDevice
は BmpDevice
、JpegDevice
、GifDevice
、PngDevice
、EmfDevice
の祖先です。
- BmpDevice クラスは、PDF ページを BMP 画像に変換することができます。
- EmfDevice クラスは、PDF ページを EMF 画像に変換することができます。
- JpegDevice クラスは、PDF ページを JPEG 画像に変換することができます。
- PngDevice クラスは、PDF ページを PNG 画像に変換することができます。
- GifDevice クラスは、PDF ページを GIF 画像に変換することができます。
PDF ページを画像に変換する方法を見てみましょう。 PDFページを画像に変換する方法を見てみましょう。
BmpDevice
クラスは、PDFファイルの特定のページをBMP画像形式に変換するためのメソッド Process を提供しています。他のクラスも同じメソッドを持っています。したがって、PDFページを画像に変換する必要がある場合は、必要なクラスをインスタンス化するだけです。
次の手順とC#のコードスニペットでこの可能性を示します
手順: C#でPDFから画像(BMP, EMF, JPG, PNG, GIF)への変換
- ImageDevice のサブクラスのインスタンスを作成します。
- BmpDevice (PDFをBMPに変換するため)
- EmfDevice (PDFをEmfに変換するため)
- JpegDevice (PDFをJPGに変換するため)
- PngDevice (PDFをPNGに変換するため)
- GifDevice (PDFをGIFに変換するため)
- PDFから画像への変換を実行するために ImageDevice.Process() メソッドを呼び出します。
public static class ExampleConvertPdfToImage
{
private static readonly string _dataDir = @"C:\Samples\";
// BMP, JPEG, GIF, PNG, EMF
public static void ConvertPDFusingImageDevice()
{
// 解像度オブジェクトを作成
Resolution resolution = new Resolution(300);
BmpDevice bmpDevice = new BmpDevice(resolution);
JpegDevice jpegDevice = new JpegDevice(resolution);
GifDevice gifDevice = new GifDevice(resolution);
PngDevice pngDevice = new PngDevice(resolution);
EmfDevice emfDevice = new EmfDevice(resolution);
Document document = new Document(_dataDir +
"ConvertAllPagesToBmp.pdf");
ConvertPDFtoImage(bmpDevice, "bmp", document);
ConvertPDFtoImage(jpegDevice,"jpeg", document);
ConvertPDFtoImage(gifDevice, "gif", document);
ConvertPDFtoImage(pngDevice, "png", document);
ConvertPDFtoImage(emfDevice, "emf", document);
}
}
public static void ConvertPDFtoImage(ImageDevice imageDevice,
string ext, Document pdfDocument)
{
for (int pageCount = 1; pageCount <= pdfDocument.Pages.Count; pageCount++)
{
using (FileStream imageStream =
new FileStream($"{_dataDir}image{pageCount}_out.{ext}",
FileMode.Create))
{
// 特定のページを変換して画像をストリームに保存
imageDevice.Process(pdfDocument.Pages[pageCount], imageStream);
// ストリームを閉じる
imageStream.Close();
}
}
}
PDFをオンラインでPNGに変換してみてください
無料アプリケーションがどのように機能するかの例として、次の機能をご覧ください。
Aspose.PDF for .NETは、無料のオンラインアプリケーション “PDFをPNGに” 提供しており、その機能や品質を調査することができます。
SaveOptionsクラスを使用してPDFを変換
この記事の部分では、C#とSaveOptionsクラスを使用してPDFをSVGに変換する方法を示しています。
PDFをオンラインでSVGに変換してみてください
Aspose.PDF for .NETは、無料のオンラインアプリケーション “PDFをSVGに” 提供しており、その機能や品質を調査することができます。
スケーラブルベクターグラフィックス (SVG) は、静的および動的(インタラクティブまたはアニメーション)の二次元ベクターグラフィックスのためのXMLベースのファイル形式の仕様ファミリーです。SVG仕様は、1999年からWorld Wide Web Consortium (W3C)によって開発が進められているオープンスタンダードです。
SVG画像とその振る舞いは、XMLテキストファイルで定義されます。これは、検索、インデックス作成、スクリプト化、必要に応じて圧縮が可能であることを意味します。XMLファイルとして、SVG画像は任意のテキストエディタで作成および編集できますが、Inkscapeのようなドロープログラムで作成する方が便利な場合が多いです。
Aspose.PDF for .NETは、SVG画像をPDF形式に変換する機能をサポートしており、PDFファイルをSVG形式に変換する機能も提供しています。 Aspose.PDF for .NETは、SVGイメージをPDF形式に変換する機能をサポートしており、PDFファイルをSVG形式に変換する機能も提供しています。
次のコードスニペットは、.NETでPDFファイルをSVG形式に変換する手順を示しています。
- Document クラスのオブジェクトを作成します。
- 必要な設定で SvgSaveOptions オブジェクトを作成します。
- Document.Save() メソッドを呼び出し、PDFドキュメントをSVGに変換するために SvgSaveOptions オブジェクトを渡します。
public static void ConvertPDFtoSVG()
{
// PDFドキュメントをロード
Document document = new Document(System.IO.Path.Combine(_dataDir, "input.pdf"));
// SvgSaveOptionsのオブジェクトをインスタンス化
SvgSaveOptions saveOptions = new SvgSaveOptions
{
// SVGイメージをZipアーカイブに圧縮しない
CompressOutputToZipArchive = false,
TreatTargetFileNameAsDirectory = true
};
// 出力をSVGファイルで保存
document.Save(System.IO.Path.Combine(_dataDir, "PDFToSVG_out.svg"), saveOptions);
}