从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();
}