[英]How to extract fonts from PDDocument in PDFBox 2.0.2
我已經在以前的版本中看到了如何做到這一點,如下所示:
但我認為 getFonts() 方法現在已被刪除。 我想在新版本的 PDFBox 中檢索文本到字體的映射( Map<String, PDFont>
),但我不知道如何。
謝謝
卡比爾
這樣做:
PDDocument doc = PDDocument.load("C:/mydoc3.pdf");
for (int i = 0; i < doc.getNumberOfPages(); ++i)
{
PDPage page = doc.getPage(i);
PDResources res = page.getResources();
for (COSName fontName : res.getFontNames())
{
PDFont font = res.getFont(fontName);
// do stuff with the font
}
}
PDFMetaData pdfMeta = new PDFMetaData();
PDDocument document = PDDocument.load(new File("/Users/ban.pdf"));
PDPage page = document.getPage(0);
PDResources res = page.getResources();
for (COSName fontName : res.getFontNames())
{
PDFont font = res.getFont(fontName);
pdfMeta.setFontName(font);
}
對於 PDFBox 2.x,您鏈接到的答案的修訂代碼是
PDDocument doc = PDDocument.load("C:/mydoc3.pdf");
for(PDPage page : doc.getPages()){
// get the names of the fonts in the resources dictionary
Iterable<COSName> iterable = page.getResources().getFontNames();
// to get the font for each item call
// page.getResources().getFont(COSName name);
}
這是使用pdfbox 2.0.6提取PDF文件的字體。
import java.io.File;
import java.util.List;
import java.util.Map;
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.font.PDFont;
public class PDFFontExtractor {
public static void main(String args[])
{
try
{
PDDocument pddDocument = PDDocument.load(new File("C:\\Users\\Desktop\\sample1.pdf"));
for (int i = 0; i < pddDocument.getNumberOfPages(); ++i)
{
PDPage page = pddDocument.getPage(i);
PDResources res = page.getResources();
for (COSName fontName : res.getFontNames())
{
PDFont font = res.getFont(fontName);
System.out.println("FONT :: "+ font);
}
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.