PDFからフォントを抽出する
Contents
[
Hide
]
PDFドキュメントからすべてのフォントを取得したい場合は、Documentクラスで提供されているDocument.IDocumentFontUtilities.getAllFonts()メソッドを使用できます。既存のPDFドキュメントからすべてのフォントを取得するための以下のコードスニペットを確認してください:
// Licenseクラスの新しいインスタンスを作成し、ライセンスファイルを設定します。
$licenceObject = new License();
$licenceObject->setLicense($license);
// PDFドキュメントを含むディレクトリのパスと、抽出されたフォントの出力ディレクトリを設定します。
$dataDir = getcwd() . DIRECTORY_SEPARATOR . "samples";
$inputFile = $dataDir . DIRECTORY_SEPARATOR . "sample.pdf";
// レスポンスデータ変数を初期化します。
$responseData = "";
try {
// PDFドキュメントを読み込みます。
$document = new Document($inputFile);
// PDFドキュメントで使用されているすべてのフォントを取得します。
$fonts = java_values($document->getFontUtilities()->getAllFonts());
// 各フォントを反復処理し、TrueTypeフォントファイルとして保存します。
foreach ($fonts as $font) {
// フォントファイルの出力ファイルパスを設定します。
$outputFile = $dataDir . DIRECTORY_SEPARATOR . "results" . DIRECTORY_SEPARATOR . $font->getFontName() . ".ttf";
// フォントファイルを書き込むためのFileOutputStreamオブジェクトを作成します。
$fontStream = new java("java.io.FileOutputStream", $outputFile);
// フォントをTrueTypeフォントファイルとして保存します。
$font->save($fontStream);
// フォントストリームを閉じます。
$fontStream->close();
// フォント名をレスポンスデータに追加します。
$responseData = $responseData . $font->getFontName() . ", ";
}
// PDFドキュメントを閉じます。
$document->close();
}