PDF Optimizer
概要
Web用設定
・表示や文書交換に不要なデータをPDFファイルから削除・画像のダウンサンプリングや最適な再圧縮
・PDFファイルに埋め込まれたフォントを統合、サブセット化
・Web表示のためにリニアライズ
・色空間をRGBに変換
アーカイブ(文書保存)用設定
・文書の保存に不要なデータをPDFファイルから削除・画像の最適な再圧縮
・PDFファイルに埋め込まれたフォントを統合、サブセット化
印刷用設定
・印刷に不要なデータをPDFファイルから削除・画像のダウンサンプリングや最適な再圧縮
・PDFファイルに埋め込まれたフォントを統合、サブセット化
・色空間をCMYKに変換
製品の種類 (ライセンスのバリエーション)
PDF Optimizerは以下の種類の製品(ライセンス)があります。用途に合わせて選択してください。
- コマンド・ラインで利用する製品(Shellライセンス)
PDF Optimizerの機能をコマンドラインで利用するコンポーネントです。 バッチ処理などで処理する場合に適します。
開発のライセンスは含みません。 - アプリケーションを開発するための製品(SDKライセンス)
クライアントPCまたはサーバーで開発するためのライセンスです。
利用のライセンスを含みません。 - ライブラリ(API)クライアントで利用する製品(クライアント・APIライセンス)
クライアントPCで利用するためのライセンスです。
開発のライセンスを含みません。 - ライブラリ(API)をサーバーで利用する製品(サーバー・APIライセンス)
PDF Optimizerの機能をサービスとして提供するためのライセンスです。
開発のライセンスを含みません。
機能
- カラー画像やグレースケール(モノクロ)画像またはインデックス画像の解像度を下げる(ダウン・サンプリング)
- ダウンサンプリングを開始するしきい値を設定
- 色変換(RGB、CMYK、グレースケールへ)
- 再圧縮(JPEG、JPEG2000、JBIG2、CCITT G3, G3-2D, G4、Flate、LZW)
- フォントをサブセット化
- 埋め込まれた標準フォントからフォントの除去
- リソースの最適化
- 冗長なオブジェクトの除去
- 不要な情報の削除:記事のスレッド、代替画像、メタデータ、ページ断片情報、文書構造ツリー、サムネール、スパイダー情報
- フォームフィールドと注釈を削除もしくは変更
- 暗号化されたPDF文書のを読み書き
- Web閲覧用のリニアライズ
- 一覧画像属性:ページ番号、サイズ、解像度、色空間、圧縮タイプ、圧縮率、PDF文書内でのスペース要件
- リストに使用されるフォントとその属性
仕様
入力フォーマット
出力フォーマット
OS
規格準拠
インターフェース
OS
- PDF 1.x (PDF 1.0,...,PDF 1.7)
- PDF 2.0
出力フォーマット
- PDF 1.x (PDF 1.0,...,PDF 1.7)
- PDF 2.0
OS
- Windows 8, 8.1, 10
- Windows Server 2012, 2012 R2, 2016, 2019 – 32 または 64Bit
- HP-UX – 32Bit または Itanium
- IBM AIX – 32 または 64Bit
- Linux (SuSE and Red Hat on Intel)
- Mac OS X
- Sun Solaris
規格準拠
- ISO 32000-1 (PDF 1.7)
- ISO 32000-2 (PDF 2.0)
インターフェース
- C/C++
- Java
- .NET Framework
- .NET Core (Windows)
- COM
OS
- Windows 8, 8.1, 10 – 32 または 64Bit
- Windows Server 2012, 2012 R2, 2016, 2019 – 32 または 64Bit
- Linux
- Red Hat, CentOS, Oracle Linux 7以降 - 64Bit
- Fedora 29以降 - 64Bit
- Debian 8以降 - 64Bit
- Other: Linux kernel 2.6以降, GCC toolset 4.8以降 - 64Bit
- macOS 10.10以降 - 64Bit
サンプル
PDFファイルのサイズを縮小して、Webサーバーのメモリ使用量を削減すると共にダウンロード時間を減らします。
出力PDFファイルはリニアライズされます。リニアライズとは、PDF文書全体がダウンロードされる前にそのコンテンツが表示されるようにすることです。
出力PDFファイルはリニアライズされます。リニアライズとは、PDF文書全体がダウンロードされる前にそのコンテンツが表示されるようにすることです。
C# | C/C++ | 他のサンプル |
// Optimizer生成 pOptimizer = PdfOptimizeCreateObject(); // Web/e-mailプロファイルを選択 PdfOptimizeSetProfile(pOptimizer, eOptimizationProfileWeb); // Auto-linearization(自動リニアライズ)を無効 PdfOptimizeSetAutoLinearize(pOptimizer, 0); // リニアライズを指定 PdfOptimizeSetLinearize(pOptimizer, bLinearize); // 入力ファイルをオープン if (!PdfOptimizeOpen(pOptimizer, szInputPath, _T(""))) { _tprintf(_T("入力ファイル %s をオープンできません。 %s (エラーコード: 0x%08x).\n"), szInputPath, PdfOptimizeGetErrorMessage(pOptimizer), PdfOptimizeGetErrorCode(pOptimizer)); iReturnValue = 1; goto cleanup; } // PDFファイルを出力 if (!PdfOptimizeSaveAs(pOptimizer, szOutputPath, _T(""), _T(""), ePermNoEncryption)) { _tprintf(_T("出力ファイル %s を作成できません。 %s (エラーコード: 0x%08x).\n"), szOutputPath, PdfOptimizeGetErrorMessage(pOptimizer), PdfOptimizeGetErrorCode(pOptimizer)); iReturnValue = 1; goto cleanup; } // 入力ファイルをクローズ if (!PdfOptimizeClose(pOptimizer)) { _tprintf(_T("入力ファイル %s をクローズできません。 %s (エラーコード: 0x%08x).\n"), szInputPath, PdfOptimizeGetErrorMessage(pOptimizer), PdfOptimizeGetErrorCode(pOptimizer)); iReturnValue = 1; goto cleanup; } _tprintf(_T("終了"));
C# | C/C++ | 他のサンプル |
// Optimizerオブジェクト生成 using (Optimizer optimizer = new Optimizer()) { // WebとE-メールの最適化指定 optimizer.Profile = PDFOptimizationProfile.eOptimizationProfileWeb; // Auto-Linearization(自動リニアライズ)を無効 optimizer.AutoLinearize = false; // リニアライズを指定 optimizer.Linearize = linearize; // 入力ファイルをオープン if (!optimizer.Open(inputPath, "")) throw new Exception(String.Format("入力ファイル {0} をオープンできません " + "{1} (エラー: 0x{2:x}).", inputPath, optimizer.ErrorMessage, optimizer.ErrorCode)); // PDFファイルを出力 if (!optimizer.SaveAs(outputPath, "", "", PDFPermission.ePermNoEncryption)) throw new Exception(String.Format("出力ファイル {0} を作成できません " + "{1} (エラー: 0x{2:x}).", outputPath, optimizer.ErrorMessage, optimizer.ErrorCode)); // 入力ファイルをクローズ if (!optimizer.Close()) throw new Exception(String.Format("入力ファイル {0} をクローズできません " + "{1} (エラー: 0x{2:x}).", inputPath, optimizer.ErrorMessage, optimizer.ErrorCode)); } Console.WriteLine("終了");