PDF to Image Converter(画像に変換) サンプル
PDF を画像に変換 概要
「PDF to Image Converter」は、PDF文書を単一(TIFF、JPEG他)または、複数ページの画像(TIFF)または、画像化されたPDFに変換する機能をアプリケーションに追加するライブラリ(API)です。
価格見積り
無償評価版(リンク先は英語)
価格見積り
機能、特徴
- 単一または複数の画像を生成
- 画像フォーマット:TIFF、JPEG、PNG、GIF、BMP、EPS、JBIG2、JPEG2000、Extended JPEG2000、PBM
- PDF文書作成:ラスタライズ(画像化)されたPDF
- PDF文書の復号と暗号化可能
- 画像フィルター(エイリアスやモアレを低減):スーパーサンプリング、バイキュービック、バイリニア
- 色空間:グレースケール、RGB、CMYK、インデックス
- 解像度、色数 設定
- 圧縮画像:JPEG(非可逆圧縮)、JPEG2000、JBG2(ロスレス圧縮可能)
- 画質やサイズ(非可逆圧縮)の最適化
- ハーフトーン(ディザ)方式:Floyd Steinberg、Halftone Block、Halftone Continuous、Atkinson)
- 微細なテキスト文字の線幅を太くする
無償評価版(リンク先は英語)
無償評価版のダウンロードとインストール
C#開発環境 | C/C++開発環境 | Python開発環境 |
ライブラリ(評価版API)は無償でダウンロードできます。
ファイルをダウンロードしてから適当なフォルダーに解凍してください。
以下のようなフォルダーができあがりますので、適宜ご利用ください。
サンプルの実行前に参照設定などを行ってください。
無償評価版と共にダウンロードしたライセンスキーを bin/LicenseManager.exeを使って登録してください。
ファイルをダウンロードしてから適当なフォルダーに解凍してください。
以下のようなフォルダーができあがりますので、適宜ご利用ください。
bin | ライブラリやライセンスマネージャーなど |
doc | 使用説明書やjavadocなど |
include | C/C++用のヘッダー(.h)ファイル |
jar | Pdf2ImgAPI.jar(Javaのラッパー) |
lib | C/C++用のlibファイル |
samples | 各種開発言語のサンプル |
無償評価版と共にダウンロードしたライセンスキーを bin/LicenseManager.exeを使って登録してください。
C#開発環境 | C/C++開発環境 | Python開発環境 |
1.Zipファイルをダウンロードする場合
ライブラリ(評価版API)は無償でダウンロードできます。
ファイルをダウンロードしてから適当なフォルダーに解凍してください。
以下のようなフォルダーができあがりますので、適宜ご利用ください。
サンプルの実行前に参照設定などを行ってください。
無償評価版と共にダウンロードしたライセンスキーを bin/LicenseManager.exeを使って登録してください。
ファイルをダウンロードしてから適当なフォルダーに解凍してください。
以下のようなフォルダーができあがりますので、適宜ご利用ください。
bin | ライブラリやライセンスマネージャーなど |
doc | 使用説明書やjavadocなど |
include | C/C++用のヘッダー(.h)ファイル |
jar | Pdf2ImgAPI.jar(Javaのラッパー) |
lib | C/C++用のlibファイル |
samples | 各種開発言語のサンプル |
無償評価版と共にダウンロードしたライセンスキーを bin/LicenseManager.exeを使って登録してください。
2.NuGetでインストールする場合
nuget.org から PdfTools.Pdf2ImageR2 をインストールします。
NuGetでのインストール手順
この場合は参照設定などの必要はありません。
評価用ライセンスキーは 以下のソースコードまたは、こちら から取得してください。
NuGetでのインストール手順
この場合は参照設定などの必要はありません。
評価用ライセンスキーは 以下のソースコードまたは、こちら から取得してください。
サンプルと解説
C#開発環境 | C/C++開発環境 | Python開発環境 |
以下のC/C++サンプルで、各機能の実装を確認してください。
JPEG画像に変換する | サンプルコード | |
PNG画像に変換する | サンプルコード | |
複数ページTIFF画像に変換する | サンプルコード | |
複数ページTIFF FAX画像に変換する | サンプルコード |
C#開発環境 | C/C++開発環境 | Python開発環境 |
以下のC#サンプルで、各機能の実装を確認してください。
JPEG画像に変換する | サンプルコード | |
PNG画像に変換する | サンプルコード | |
複数ページTIFF画像に変換する | サンプルコード | |
複数ページTIFF FAX画像に変換する | サンプルコード |
C#開発環境 | C/C++開発環境 | Python開発環境 |
以下のPythonサンプルで、各機能の実装を確認してください。
JPEG画像に変換する | サンプルコード | |
PNG画像に変換する | サンプルコード | |
複数ページTIFF画像に変換する | サンプルコード | |
複数ページTIFF FAX画像に変換する | サンプルコード |
PDF文書をJPEG画像ファイルに変換
PDF文書の各ページを単一のJPEG画像ファイルに変換するサンプルです。JPEG圧縮の品質を指定することができます。
C# | C/C++ | Python | ダウンロード |
// 初期化 pConverter = Pdf2ImgCreateObject(); // 入力ファイルをオープン if (!Pdf2ImgOpen(pConverter, szInputPath, _T(""))) { _tprintf(_T("入力ファイル %s をオープンできません。 %s (エラーコード: 0x%08x).\n"), szOutputPath, Pdf2ImgGetErrorMessage(pConverter), Pdf2ImgGetErrorCode(pConverter)); iReturnValue = 1; goto cleanup; } // 画像品質を指定 Pdf2ImgSetImageQuality(pConverter, iQuality); // 入力PDFの全ページを繰り返し、その都度JPEG画像ファイルを作成 for (int iPage = 1; iPage <= Pdf2ImgGetPageCount(pConverter); iPage++) { // 出力ファイルの名前と拡張子 _tcstok(szOutputPath, _T(".")); _stprintf(szImagePath, _T("%s%d.jpg"), szOutputPath, iPage); // 出力のJPEG画像ファイルを生成 if (!Pdf2ImgCreateImage(pConverter, szImagePath)) { _tprintf(_T("出力画像ファイル %s を生成できません。 %s (エラーコード: 0x%08x).\n"), szInputPath, Pdf2ImgGetErrorMessage(pConverter), Pdf2ImgGetErrorCode(pConverter)); iReturnValue = 1; goto cleanup; } // PDFのページを出力ファイルにJPEGレンダリング if (!Pdf2ImgRenderPage(pConverter, iPage)) { _tprintf(_T("PDFファイル %s のページ %d をJPEGファイル %s にレンダリングできません。 %s (エラーコード: 0x%08x).\n"), szInputPath, iPage, szImagePath, Pdf2ImgGetErrorMessage(pConverter), Pdf2ImgGetErrorCode(pConverter)); iReturnValue = 1; goto cleanup; } // 出力ファイルをクローズ if (!Pdf2ImgCloseImage(pConverter)) { _tprintf(_T("出力ファイル %s をクローズできません。 %s (エラーコード: 0x%08x).\n"), szImagePath, Pdf2ImgGetErrorMessage(pConverter), Pdf2ImgGetErrorCode(pConverter)); iReturnValue = 1; goto cleanup; } } _tprintf(_T("終了\n")); cleanup: Pdf2ImgClose(pConverter); Pdf2ImgDestroyObject(pConverter); Pdf2ImgUnInitialize(); return iReturnValue;
Pdf2ImgCreateObject | 変換オブジェクト |
Pdf2ImgOpen | PDFファイルをオープン 第一引数:変換オブジェクト 第二引数:PDFファイルパス名 第三引数:パスワード |
Pdf2ImgSetImageQuality | 画像品質を指定 第一引数:変換オブジェクト 第二引数:画像品質[%] |
Pdf2ImgRenderPage | 指定のページをレンダリング 第一引数:変換オブジェクト 第二引数:ページ番号 |
Pdf2ImgCloseImage | PDFファイルをクローズ 第一引数:変換オブジェクト |
Pdf2ImgDestroyObject | 変換オブジェクトを削除 第一引数:変換オブジェクト |
Pdf2ImgUnInitialize | 終了 |
C# | C/C++ | Python | ダウンロード |
// 初期化 using (Converter converter = new Converter()) { // 入力ファイルをオープン if (!converter.Open(inputPath, "")) throw new Exception(String.Format("入力ファイル {0} をオープンできません。 " + "{1} (エラーコード: 0x{2:x}).", inputPath, converter.ErrorMessage, converter.ErrorCode)); // 画像品質を指定 converter.ImageQuality = quality; // 入力PDFの全ページを繰り返し、その都度JPEG画像ファイルを作成 for (int pageNo = 1; pageNo <= converter.PageCount; pageNo++) { // 出力ファイルの名前と拡張子 string imagePath = Path.ChangeExtension(outputPath, null) + pageNo.ToString() + ".jpg"; // 出力のJPEG画像ファイルを生成 if (!converter.CreateImage(imagePath)) throw new Exception(String.Format("出力画像ファイル {0} を生成できません。 {1} " + "(エラーコード: 0x{2:x}).", imagePath, converter.ErrorMessage, converter.ErrorCode)); // PDFのページを出力ファイルにJPEGレンダリング if (!converter.RenderPage(pageNo)) throw new Exception(String.Format("PDFファイル {1} のページ {0} をJPEGファイル {2} にレンダリングできません。" + " {3} (エラーコード: 0x{4:x}).", pageNo, inputPath, imagePath, converter.ErrorMessage, converter.ErrorCode)); // 出力ファイルをクローズ if (!converter.CloseImage()) throw new Exception(String.Format("出力ファイル {0} をクローズできません。 {1} " + "(エラーコード: 0x{2:x}).", imagePath, converter.ErrorMessage, converter.ErrorCode)); } }
Converter | 変換オブジェクト |
Open | PDFファイルをオープン 第一引数:PDFファイルパス名 第二引数:パスワード |
ImageQuality | 画像品質[%]を設定 |
PageCount | 現在PDFのページ数 |
CreateImage | 出力ファイルを生成 第一引数:出力画像ファイルパス名 |
RenderPage | 指定のページをレンダリングし、結果を出力ファイルに格納 第一引数:ページ番号 |
CloseImage | 画像ファイルをクローズ |
C# | C/C++ | Python | ダウンロード |
import PdfToImage import re try: p2i = PdfToImage.ConverterInterface("1-ss7T6-hwTepkh-kf7h2Fs-NGrNhRN") except Exception as e: print(e) exit() inputPath = "in.pdf"; outputPath = re.split('\.[Pp][Dd][Ff]$', inputPath) # 入力ファイルをオープン if not p2i.Open(inputPath): print('入力ファイル', inputPath, 'をオープンできません。') else: # 画像品質を指定 p2i.ImageQuality = 75 # 入力PDFの全ページを繰り返し、その都度JPEG画像ファイルを作成 for iPage in range(1, p2i.PageCount+1): # 出力ファイルの名前と拡張子 imagePath = '{}{}.jpg'.format(outputPath[0],iPage) # 出力のJPEG画像ファイルを生成 if not p2i.CreateImage(imagePath): print('出力画像ファイル', imagePath,'を生成できません。') else: # PDFのページを出力ファイルにJPEGレンダリング if not p2i.RenderPage(iPage): print('PDFファイル', inputPath,'のページ', iPage,'をJPEGファイル', imagePath,'にレンダリングできません。') # 出力ファイルをクローズ if not p2i.CloseImage(): print('出力ファイル', imagePath,'をクローズできません') print('終了')
ConverterInterface | 変換オブジェクト 引数にライセンスキーを指定します。 |
Open | PDFファイルをオープン 第一引数:PDFファイルパス名 第二引数:パスワード |
ImageQuality | 画像品質[%]を設定 |
PageCount | 現在PDFのページ数 |
CreateImage | 出力ファイルを生成 第一引数:出力画像ファイルパス名 |
RenderPage | 指定のページをレンダリングし、結果を出力ファイルに格納 第一引数:ページ番号 |
CloseImage | 画像ファイルをクローズ |
PDF文書をPNG画像ファイルに変換
PDF文書の各ページを単一のPNG画像ファイルに変換するサンプルです。
C# | C/C++ | Python | ダウンロード |
// 初期化 pConverter = Pdf2ImgCreateObject(); // 入力ファイルをオープン if (!Pdf2ImgOpen(pConverter, szInputPath, _T(""))) { _tprintf(_T("入力ファイル %s をオープンできません。 %s (エラーコード: 0x%08x).\n"), szOutputPath, Pdf2ImgGetErrorMessage(pConverter), Pdf2ImgGetErrorCode(pConverter)); iReturnValue = 1; goto cleanup; } // 入力PDFの全ページを繰り返し、その都度PNG画像ファイルを作成 for (int iPage = 1; iPage <= Pdf2ImgGetPageCount(pConverter); iPage++) { // 出力ファイルの名前と拡張子 _tcstok(szOutputPath, _T(".")); _stprintf(szImagePath, _T("%s%d.png"), szOutputPath, iPage); // 出力のPNG画像ファイルを生成 if (!Pdf2ImgCreateImage(pConverter, szImagePath)) { _tprintf(_T("出力ファイル %s を生成できません。 %s (エラーコード: 0x%08x).\n"), szImagePath, Pdf2ImgGetErrorMessage(pConverter), Pdf2ImgGetErrorCode(pConverter)); iReturnValue = 1; goto cleanup; } // PDFのページを出力ファイルにPNGレンダリング if (!Pdf2ImgRenderPage(pConverter, iPage)) { _tprintf(_T("PDFファイル %s のページ %d をJPEGファイル %s にレンダリングできません。 %s (エラーコード: 0x%08x).\n"), szInputPath, iPage, szImagePath, Pdf2ImgGetErrorMessage(pConverter), Pdf2ImgGetErrorCode(pConverter)); iReturnValue = 1; goto cleanup; } // 出力ファイルをクローズ if (!Pdf2ImgCloseImage(pConverter)) { _tprintf(_T("出力ファイル %s をクローズできません。 %s (エラーコード: 0x%08x).\n"), szImagePath, Pdf2ImgGetErrorMessage(pConverter), Pdf2ImgGetErrorCode(pConverter)); iReturnValue = 1; goto cleanup; } } _tprintf(_T("終了\n")); cleanup: Pdf2ImgClose(pConverter); Pdf2ImgDestroyObject(pConverter); Pdf2ImgUnInitialize(); return iReturnValue; }
Pdf2ImgCreateObject | 変換オブジェクト |
Pdf2ImgOpen | PDFファイルをオープン 第一引数:変換オブジェクト 第二引数:PDFファイルパス名 第三引数:パスワード |
Pdf2ImgGetPageCount | 現在PDFのページ数を取得 第一引数:変換オブジェクト |
Pdf2ImgCreateImage | 出力ファイルを生成 第一引数:変換オブジェクト 第二引数:出力画像ファイルパス名 |
Pdf2ImgRenderPage | 指定のページをレンダリングし、結果を出力ファイルに格納 第一引数:変換オブジェクト 第二引数:ページ番号 |
Pdf2ImgCloseImage | 画像ファイルをクローズ 第一引数:変換オブジェクト |
Pdf2ImgClose | PDFファイルをクローズ 第一引数:変換オブジェクト |
Pdf2ImgDestroyObject | 変換オブジェクトを削除 第一引数:変換オブジェクト |
Pdf2ImgUnInitialize | 終了 |
C# | C/C++ | Python | ダウンロード |
// 初期化 using (Converter converter = new Converter()) { // 入力ファイルをオープン if (!converter.Open(inputPath, "")) throw new Exception(String.Format("入力ファイル {0} をオープンできません。 " + "{1} (エラーコード: 0x{2:x}).", inputPath, converter.ErrorMessage, converter.ErrorCode)); // 入力PDFの全ページを繰り返し、その都度PNG画像ファイルを作成 for (int pageNo = 1; pageNo <= converter.PageCount; pageNo++) { // 出力ファイルの名前と拡張子 string imagePath = Path.ChangeExtension(outputPath, null) + pageNo.ToString() + ".png"; // 出力のPG画像ファイルを生成 if (!converter.CreateImage(imagePath)) throw new Exception(String.Format("出力画像ファイル {0} を生成できません。 {1} " + "(エラーコード: 0x{2:x}).", imagePath, converter.ErrorMessage, converter.ErrorCode)); // PDFのページを出力ファイルにPNGレンダリング if (!converter.RenderPage(pageNo)) throw new Exception(String.Format("PDFファイル {1} のページ {0} をJPEGファイル {2} にレンダリングできません。 " + " {3} (エラーコード: 0x{4:x}).", pageNo, inputPath, imagePath, converter.ErrorMessage, converter.ErrorCode)); // 出力ファイルをクローズ if (!converter.CloseImage()) throw new Exception(String.Format("出力ファイル {0} をクローズできません。 {1} " + "(エラーコード: 0x{2:x}).", imagePath, converter.ErrorMessage, converter.ErrorCode)); } }
Converter | 変換オブジェクト |
Open | PDFファイルをオープン 第一引数:PDFファイルパス名 第二引数:パスワード |
PageCount | 現在PDFのページ数 |
CreateImage | 出力ファイルを生成 第一引数:出力画像ファイルパス名 |
RenderPage | 指定のページをレンダリングし、結果を出力ファイルに格納 第一引数:ページ番号 |
CloseImage | 画像ファイルをクローズ |
C# | C/C++ | Python | ダウンロード |
import re import PdfToImage try: p2i = PdfToImage.ConverterInterface("1-ss7T6-hwTepkh-kf7h2Fs-NGrNhRN") except Exception as e: print(e) exit() inputPath = "in.pdf"; outputPath = re.split('\.[Pp][Dd][Ff]$', inputPath) # 入力ファイルをオープン if not p2i.Open(inputPath): print('入力ファイル', inputPath, 'をオープンできません。') else: # 入力PDFの全ページを繰り返し、その都度PNG画像ファイルを作成 for iPage in range(1, p2i.PageCount+1): # 出力ファイルの名前と拡張子 imagePath = '{}{}.png'.format(outputPath[0],iPage) # 出力のPNG画像ファイルを生成 if not p2i.CreateImage(imagePath): print('出力画像ファイル', imagePath,'を生成できません。') else: # PDFのページを出力ファイルにPNGレンダリング if not p2i.RenderPage(iPage): print('PDFファイル', inputPath,'のページ', iPage,'をPNGファイル', imagePath,'にレンダリングできません。') print('終了')
ConverterInterface | 変換オブジェクト 引数にライセンスキーを指定します。 |
Open | PDFファイルをオープン 第一引数:PDFファイルパス名 第二引数:パスワード |
PageCount | 現在PDFのページ数 |
CreateImage | 出力ファイルを生成 第一引数:出力画像ファイルパス名 |
RenderPage | 指定のページをレンダリングし、結果を出力ファイルに格納 第一引数:ページ番号 |
CloseImage | 画像ファイルをクローズ |
PDF文書を複数ページTIFF画像ファイルに変換
PDF文書の全ページを複数ページTIFF画像ファイルに変換します。
TIFF画像には圧縮アルゴリズムを指定でき、JPEG圧縮を指定した場合は画像品質を指定できます。
TIFF画像には圧縮アルゴリズムを指定でき、JPEG圧縮を指定した場合は画像品質を指定できます。
C# | C/C++ | Python | ダウンロード |
// 初期化 pConverter = Pdf2ImgCreateObject(); // 入力ファイルをオープン if (!Pdf2ImgOpen(pConverter, szInputPath, _T(""))) { _tprintf(_T("入力ファイル %s をオープンできません。 %s (エラーコード: 0x%08x).\n"), szInputPath, Pdf2ImgGetErrorMessage(pConverter), Pdf2ImgGetErrorCode(pConverter)); iReturnValue = 1; goto cleanup; } // 出力ファイルの名前と拡張子 _tcstok(szOutputPath, _T(".")); _stprintf(szImagePath, _T("%s.tif"), szOutputPath); // 圧縮アルゴリズムと画像品質を指定 Pdf2ImgSetCompression(pConverter, eCompression); Pdf2ImgSetQuality(pConverter, iQuality); // 出力のTIFF画像ファイルを生成 if (!Pdf2ImgCreateImage(pConverter, szImagePath)) { _tprintf(_T("出力ファイル %s を生成できません。 %s (エラーコード: 0x%08x).\n"), szImagePath, Pdf2ImgGetErrorMessage(pConverter), Pdf2ImgGetErrorCode(pConverter)); iReturnValue = 1; goto cleanup; } // PDFの全ページを複数ページTIFF画像ファイルに変換 for (int iPage = 1; iPage <= Pdf2ImgGetPageCount(pConverter); iPage++) { // ページをTIFF画像にレンダリング if (!Pdf2ImgRenderPage(pConverter, iPage)) { _tprintf(_T("PDFファイル %s のページ %d をTIFFファイル %s に出力できません。 %s (エラーコード: 0x%08x).\n"), szInputPath, iPage, szImagePath, Pdf2ImgGetErrorMessage(pConverter), Pdf2ImgGetErrorCode(pConverter)); iReturnValue = 1; goto cleanup; } } // 出力ファイルをクローズ if (!Pdf2ImgCloseImage(pConverter)) { _tprintf(_T("出力ファイル %s をクローズできません。 %s (エラーコード: 0x%08x).\n"), szImagePath, Pdf2ImgGetErrorMessage(pConverter), Pdf2ImgGetErrorCode(pConverter)); iReturnValue = 1; goto cleanup; }
Pdf2ImgCreateObject | 変換オブジェクト |
Pdf2ImgOpen | PDFファイルをオープン 第一引数:変換オブジェクト 第二引数:PDFファイルパス名 第三引数:パスワード |
Pdf2ImgSetCompression | 画像の圧縮アルゴリズムを設定 第一引数:変換オブジェクト 第二引数:圧縮アルゴリズム |
Pdf2ImgSetQuality | 画像の品質を設定 第一引数:変換オブジェクト 第二引数:画像品質[%] |
Pdf2ImgCreateImage | 出力ファイルを生成 第一引数:変換オブジェクト 第二引数:出力画像ファイルパス名 |
Pdf2ImgGetPageCount | 現在PDFのページ数を取得 第一引数:変換オブジェクト |
Pdf2ImgRenderPage | 指定のページをレンダリングし、結果を出力ファイルに格納 第一引数:変換オブジェクト 第二引数:ページ番号 |
Pdf2ImgCloseImage | 画像ファイルをクローズ 第一引数:変換オブジェクト |
C# | C/C++ | Python | ダウンロード |
// 初期化 using (Converter converter = new Converter()) { // 入力ファイルをオープン if (!converter.Open(inputPath, "")) throw new Exception(String.Format("入力ファイル {0} をオープンできません。 {1} (エラーコード: {2}).", inputPath, converter.ErrorMessage, converter.ErrorCode)); // 圧縮アルゴリズムと画像品質を指定 converter.Compression = compression; converter.ImageQuality = quality; // 出力のTIFF画像ファイルを生成 if (!converter.CreateImage(outputPath)) throw new Exception(String.Format("出力ファイル {0} を生成できません。 " + "{1} (エラーコード: {2}).", outputPath, converter.ErrorMessage, converter.ErrorCode)); // PDFの全ページを複数ページTIFF画像ファイルに変換 for (int pageNo = 1; pageNo <= converter.PageCount; pageNo++) { // ページをTIFF画像にレンダリング if (!converter.RenderPage(pageNo)) throw new Exception(String.Format("PDFファイル {1} のページ {0} をTIFFファイル {2} に出力できません。 " + " {3} (エラーコード: {4}).", pageNo, inputPath, outputPath, converter.ErrorMessage, converter.ErrorCode)); } // 出力ファイルをクローズ if (!converter.CloseImage()) throw new Exception(String.Format("出力ファイル {0} をクローズできません。 " + "{1} (エラーコード: {2}).", outputPath, converter.ErrorMessage, converter.ErrorCode)); }
Converter | 変換オブジェクト |
Open | PDFファイルをオープン 第一引数:PDFファイルパス名 第二引数:パスワード |
Compression | 画像の圧縮アルゴリズムを設定 第一引数:変換オブジェクト 第二引数:圧縮アルゴリズム |
ImageQuality | 画像の品質を設定 第一引数:変換オブジェクト 第二引数:画像品質[%] |
CreateImage | 出力ファイルを生成 第一引数:出力画像ファイルパス名 |
PageCount | 現在PDFのページ数 |
RenderPage | 指定のページをレンダリングし、結果を出力ファイルに格納 第一引数:ページ番号 |
CloseImage | 画像ファイルをクローズ |
C# | C/C++ | Python | ダウンロード |
import PdfToImage try: p2i = PdfToImage.ConverterInterface("1-ss7T6-hwTepkh-kf7h2Fs-NGrNhRN") except Exception as e: print(e) exit() # 入力ファイルをオープン if not p2i.Open(inputPath): print('入力ファイル', inputPath, 'をオープンできません。') else: # 圧縮アルゴリズムと画像品質を指定 p2i.Compression = PdfToImage.Compression.eComprJPEG; p2i.ImageQuality = 90 # 出力のTIFF画像ファイルを生成 p2i.CreateImage('out.tiff') # PDFの全ページを複数ページTIFF画像ファイルに変換 for pageNo in range(1, p2i.PageCount+1): p2i.RenderPage(pageNo) p2i.CloseImage() print('終了')
ConverterInterface | 変換オブジェクト 引数にライセンスキーを指定します。 |
Open | PDFファイルをオープン 第一引数:PDFファイルパス名 第二引数:パスワード |
Compression | 画像の圧縮アルゴリズムを設定 第一引数:変換オブジェクト 第二引数:圧縮アルゴリズム |
ImageQuality | 画像の品質を設定 第一引数:変換オブジェクト 第二引数:画像品質[%] |
CreateImage | 出力ファイルを生成 第一引数:出力画像ファイルパス名 |
PageCount | 現在PDFのページ数 |
RenderPage | 指定のページをレンダリングし、結果を出力ファイルに格納 第一引数:ページ番号 |
CloseImage | 画像ファイルをクローズ |
PDF文書をFAX画像ファイルに変換
PDF文書の全ページを2値(2色)の複数ページTIFF画像ファイルに変換するサンプルです。
2値化にあたってはFloyd-Steinberg手法でのディザ処理し、Faxの TIFF Class F を設定します。
2値化にあたってはFloyd-Steinberg手法でのディザ処理し、Faxの TIFF Class F を設定します。
C# | C/C++ | Python | ダウンロード |
// 初期化 pConverter = Pdf2ImgCreateObject(); // 入力ファイルをオープン if (!Pdf2ImgOpen(pConverter, szInputPath, _T(""))) { _tprintf(_T("入力ファイル %s をオープンできません。 %s (エラーコード: 0x%08x).\n"), szInputPath, Pdf2ImgGetErrorMessage(pConverter), Pdf2ImgGetErrorCode(pConverter)); iReturnValue = 1; goto cleanup; } // ディザ指定 Pdf2ImgSetDithering(pConverter, eDithering); Pdf2ImgSetBitsPerPixel(pConverter, 1); Pdf2ImgSetFitPage(pConverter, 1); Pdf2ImgSetCenter(pConverter, 1); TPDFRendererOption2 renderOptions = Pdf2ImgGetOptions2(pConverter); renderOptions |= eOptionNoAntialiasing | eOptionUseBoxFilter | eOptionFitPaths; Pdf2ImgSetOptions2(pConverter, renderOptions); Pdf2ImgSetRotateMode(pConverter, eRotatePortrait); // TIFF Class F (Fax) 指定 Pdf2ImgFaxHSetting(pConverter); // 出力画像ファイル生成 if (!Pdf2ImgCreateImage(pConverter, szOutputPath)) { _tprintf(_T("出力画像ファイル %s を生成できません。 %s (エラーコード: 0x%08x).\n"), szOutputPath, Pdf2ImgGetErrorMessage(pConverter), Pdf2ImgGetErrorCode(pConverter)); iReturnValue = 1; goto cleanup; } // PDFの全ページを複数ページTIFF画像ファイルに変換 for (int iPage = 1; iPage <= Pdf2ImgGetPageCount(pConverter); iPage++) { // PDFのページを出力ファイルにレンダリング if (!Pdf2ImgRenderPage(pConverter, iPage)) { _tprintf(_T("PDFファイル %s のページ %d をTIFFファイル %s に出力できません。 %s (エラーコード: 0x%08x).\n"), szInputPath, iPage, szOutputPath, Pdf2ImgGetErrorMessage(pConverter), Pdf2ImgGetErrorCode(pConverter)); iReturnValue = 1; goto cleanup; } } // 出力ファイルをクローズ if (!Pdf2ImgCloseImage(pConverter)) { _tprintf(_T("出力ファイル %s をクローズできません。 %s (エラーコード: 0x%08x).\n"), szOutputPath, Pdf2ImgGetErrorMessage(pConverter), Pdf2ImgGetErrorCode(pConverter)); iReturnValue = 1; goto cleanup; }
C# | C/C++ | Python | ダウンロード |
// 初期化 using (Converter converter = new Converter()) { // 入力ファイルをオープン if (!converter.Open(inputPath, "")) throw new Exception(String.Format("入力ファイル {0} をオープンできません。 " + "{1} (エラーコード: 0x{2:x}).", inputPath, converter.ErrorMessage, converter.ErrorCode)); // ディザ指定 converter.Dithering = dithering; converter.BitsPerPixel = 1; converter.FitPage = true; converter.Center = true; PDFRendererOption2 rendererOptions = converter.Options2; rendererOptions |= PDFRendererOption2.eOptionNoAntialiasing | PDFRendererOption2.eOptionUseBoxFilter | PDFRendererOption2.eOptionFitPaths; converter.Options2 = rendererOptions; converter.RotateMode = PDFRotateMode.eRotatePortrait; // TIFF Class F (Fax) 指定 converter.FaxHSetting(); // 出力画像ファイル生成 if (!converter.CreateImage(outputPath)) throw new Exception(String.Format("出力画像ファイル {0} を生成できません。 {1} " + "(エラーコード: 0x{2:x}).", outputPath, converter.ErrorMessage, converter.ErrorCode)); // PDFの全ページを複数ページTIFF画像ファイルに変換 for (int pageNo = 1; pageNo <= converter.PageCount; pageNo++) { // PDFのページを出力ファイルにレンダリング if (!converter.RenderPage(pageNo)) throw new Exception(String.Format("PDFファイル {1} のページ {0} をTIFFファイル {2} に出力できません。" + " {3} (エラーコード: 0x{4:x}).", pageNo, inputPath, outputPath, converter.ErrorMessage, converter.ErrorCode)); } // 出力ファイルをクローズ if (!converter.CloseImage()) throw new Exception(String.Format("出力ファイル {0} をクローズできません。 {1} " + "(エラーコード: 0x{2:x}).", outputPath, converter.ErrorMessage, converter.ErrorCode)); }
C# | C/C++ | Python | ダウンロード |
import PdfToImage try: p2i = PdfToImage.ConverterInterface("1-ss7T6-hwTepkh-kf7h2Fs-NGrNhRN") except Exception as e: print(e) exit() # 入力ファイルをオープン if not p2i.Open(inputPath): print('入力ファイル', inputPath, 'をオープンできません。') else: # ディザ指定他 p2i.Dither = PdfToImage.Dithering.eDitheringFloydSteinberg p2i.BitsPerPixel = 1 p2i.FitPage = True p2i.Center = True renderOptions = p2i.Options2 renderOptions |= PdfToImage.RendererOption2.eOptionNoAntialiasing | PdfToImage.RendererOption2.eOptionUseBoxFilter | PdfToImage.RendererOption2.eOptionFitPaths p2i.Options2 = renderOptions p2i.RotateMode = PdfToImage.RotateMode.eRotatePortrait # TIFF Class F (Fax) 指定 p2i.FaxHSetting() # 出力画像ファイル生成 if not p2i.CreateImage("out.tif"): print('画像ファイル "out.tif" を生成できません') else: # PDFの全ページを複数ページTIFF画像ファイルに変換 for iPage in range(1, p2i.PageCount+1): # PDFのページを出力ファイルにレンダリング if not p2i.RenderPage(iPage): print('PDFファイル ', inputPath, ' のページ ', iPage, ' をTIFFファイル out.tif に出力できません。') # 出力ファイルをクローズ if not p2i.CloseImage(): printf('出力ファイル out.tif をクローズできません。') print('終了')