首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Java中使用CFF / Type1c / Type2字体

在Java中使用CFF / Type1c / Type2字体
EN

Stack Overflow用户
提问于 2012-11-22 11:16:54
回答 3查看 1.6K关注 0票数 2

我正在尝试在Java应用程序中使用PDF文件中嵌入的一些字体。显然,Java能够加载Type1和TrueType字体。根据一些网站的说法,PDF中的Type1c字体基本上都是CFF或Type2字体。Java7的一个新特性是加载CFF字体,但是Font.createFont()不起作用。

那么,我错在哪里呢?Type1c字体真的是CFF/OpenType字体吗?是否需要进行任何转换?

EN

回答 3

Stack Overflow用户

发布于 2012-11-22 12:05:44

字体是子集的吗?(在这种情况下,它将只包含一些字符,而不是整个字体)。

通常,嵌入到PDF中的CFF字体需要进行大量的转换工作才能使其通用-如果您一直在我们的博客(http://blog.idrsolutions.com)上关注我们的PDF to HTML5转换器的开发,您将会看到许多关于字体各种问题的帖子。

google (http://code.google.com/p/sfntly/)提供了一个有趣的Java字体工具,如果您正在研究字体操作,则fontforge非常有用。

票数 2
EN

Stack Overflow用户

发布于 2012-11-23 23:06:06

恐怕你得找出你到底在打什么仗。不相信关于字体的网站,请阅读PDF规范:http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/PDF32000_2008.pdf

具体来说,你要找的是9.6章--简单字体和9.7 -复合字体。

总之,PDF文件中的字体可以是多种类型:-Type0-Type1-Type3- TrueType

Type1和TrueType是最简单的,你很可能会在PDF文件中遇到它们。类型3是一种字体类型,您可以使用图形来绘制字符。不是很常见。

Type0是一种更复杂的字体类型,最初设计为允许您使用大字符集(比如日语/中文),但现在它也经常由许多专业设计和布局应用程序生成。该Type0字体类型有两个子类型:- SubType 0,它是进入Type0夹克的Type1字体,以及- SubType 2,它是进入Type0夹克的TrueType字体

在所有情况下,系统中的“真实”字体与PDF文件中嵌入的字体都存在显著差异。

首先查看包含您要使用的字体的PDF文件。使用来自callas的pdfToolbox (http://www.callassoftware.com/callas/doku.php/en:download)或来自Enfocus的浏览器(http://www.enfocus.com/en/products/browser)等工具。这两个工具都允许您调查PDF文件的低级结构,包括查看实际的页面描述代码和字体字典。pdfToolbox特别擅长研究PDF文件中的字体,包括查看实际形状和用于绘制这些形状的指令。

票数 1
EN

Stack Overflow用户

发布于 2016-09-20 03:53:58

FontVerter是我之前写的一个开源java库,它可以将PDF中的纯CFF*和type0/复合字体转换成OTF/TTF和WOFF1/2。它还可以尝试修复和规范化在浏览器中不能正常工作的OTF/TTF字体,我发现嵌入到PDF中的开放式字体经常存在各种问题,比如缺少表格,这会阻止chrome正确地呈现它们。

FontVerter github

(*bare CFF = type1c我相信?,有一点,我忘记了哪种类型是哪种类型)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13511554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档