如何使用itext将嵌入的ttf字体导出到ttf文件中?

问题描述 投票:0回答:0

我必须将嵌入的 ttf 字体从 PDF 文件导出到有效的 ttf 文件。我在itext的知识库中找到了一个代码片段,它可以在PDF文件中取消嵌入字体。但我找不到如何将字体写入文件以便在取消嵌入之前保存它们的方法。

我已经深入研究了 itext 代码,但无法弄清楚如何将 PdfFont 转换为 bytes[] 或其他内容。有一个基于字体文件中的字节使用 PdfStream 嵌入字体的代码片段:

// The font file
RandomAccessFile raf = new RandomAccessFile(fontfile, "r");
byte fontbytes[] = new byte[(int) raf.length()];
raf.readFully(fontbytes);
raf.close();

// Create a new stream for the font file
PdfStream stream = new PdfStream(fontbytes);
stream.setCompressionLevel(CompressionConstants.DEFAULT_COMPRESSION);
stream.put(PdfName.Length1, new PdfNumber(fontbytes.length));


...

// Embed the passed font to the pdf document
fontDictionary.put(PdfName.FontFile2, stream.makeIndirect(pdfDoc).getIndirectReference());

我尝试反转该过程,但无法弄清楚如何使用 PdfIndirectReference 来完成此操作。

PdfWriter 可以用于该任务吗?或者我真的需要使用字形吗?

java fonts itext export
© www.soinside.com 2019 - 2024. All rights reserved.