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-EWnbN-THqKP7P-HaWaWmk-FN2AmhG")
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-EWnbN-THqKP7P-HaWaWmk-FN2AmhG")
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-EWnbN-THqKP7P-HaWaWmk-FN2AmhG")
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-EWnbN-THqKP7P-HaWaWmk-FN2AmhG")
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('終了')
