如何知道与itext中的字体兼容的cmap?

韩坤

我检查字体的编码(字体的类型为OpenType字体),结果如下:

PostScript name: HiraKakuProN-W3
Available code pages:
encoding[0] = 1252 Latin 1
encoding[1] = 1251 Cyrillic
encoding[2] = 1253 Greek
encoding[3] = 932 JIS/Japan

然后,通过代码创建字体:

Font f = new Font(BaseFont.createFont("hirafont.otf", "Identity-V", BaseFont.EMBEDDED));

除了“ Identity-V”和“ Identity-H”外,我无法使用其他cmap,例如“ UniJISX0213-UTF32-H / V ...”。在这种字体中,我看到许多字形以90度旋转显示。如何将unicode中的char映射到char的字形(字体旋转)?

示例:字体为9265的'〔'(0x3014 12308 LEFT TORTOISE SHELL BRACKET)映射

---------更新代码--------

PdfEncodings.loadCmap("UniJISX0213-UTF32-V", PdfEncodings.CRLF_CID_NEWLINE);
String temp = "a";

byte[] text = temp.getBytes("Shift_JIS");
String cid = PdfEncodings.convertCmap("UniJISX0213-UTF32-V", text);
BaseFont bf = BaseFont.createFont("hiraginoFont.otf",BaseFont.IDENTITY_V, BaseFont.EMBEDDED);
Paragraph p = new Paragraph(cid, new Font(bf, 14));
布鲁诺·洛瓦吉

我必须深入研究第一本书才能找到对您所问内容的参考。很久以前,我们曾经分发过以下jar:itext-asiancmaps.jar请勿将此jar与用于CJK字体的itext-asian.jar混淆。

我花了一段时间才找到那个罐子的副本。您可以在以下旧的ZIP文件中找到它:extrajars-2.1.zip

根据我的第一本书(写于2005-2006年),您可以将此jar用于itext-asian.jar中CMap不支持的编码。

它的用法如下:

PdfEncodings.loadCmap("GBK2K-H", PdfEncodings.CRLF_CID_NEWLINE);
byte[] text = my_GB_encoded_text;
String cid = PdfEncodings.convertCmap("GBK2K-H", text);
BaseFont bf = BaseFont.createFont("STSong-Light",
    BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Paragraph p = new Paragraph(cid, new Font(bf, 14));
document.add(p);

如您所知BaseFont.IDENTITY_H,这BaseFont.IDENTITY_V是2字节CID的水平和垂直身份映射。PdfEncodings类可以转换String一个特定编码到String具有2个字节的CID。在这种情况下,原始文件String编码为GB 18030-2000;我们需要将其转换为另一个,String以便iText可以使用IDENTITY_H编码。

在第一本书中,我写道:“为了完整起见,我插入了此示例。在过去的三年中,只有少数人对此发表了疑问。” 当我写第二本书(2009-2010)时,没有人问过这个功能,因此我放弃了使用cmaps分发jar的示例,但该示例并没有成为第二本书。

我现在恢复这个旧示例,希望它有用。我在2005年或2006年对其进行了一次测试,然后就可以了。我不能保证它今天仍然可以使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何知道与Itext中的字体兼容的cmap?

来自分类Dev

iText 7如何在整个文档中设置字体

来自分类Dev

如何使用 iText 7 删除 PDF 文件中的重复字体

来自分类Dev

我如何知道PDF文件中的字体是否嵌入?

来自分类Dev

如何在iText中更改渲染的PDF文档中的字体大小?

来自分类Dev

在Itext中修改现有PDF的字体

来自分类Dev

如何在Android上的XMLWorker中的iText中使用CJK字体?

来自分类Dev

如何在iText中将不同的字体应用于PDFCell中的段落和块

来自分类Dev

任何人都知道TabStop如何在iText 5.5.0中工作

来自分类Dev

我如何知道我安装的插件是否与Firefox中的电解兼容?

来自分类Dev

如何知道PDF文件中使用的字体?

来自分类Dev

我如何知道 Eclipse 中默认/经典主题的确切字体颜色

来自分类Dev

如何使Fabric.js IText字体不加粗?

来自分类Dev

iText 7:如何构建混合不同字体的段落?

来自分类Dev

如何在Stamper中使用Verdana字体(iText PDF)

来自分类Dev

如何在Stamper中使用Verdana字体(iText PDF)

来自分类Dev

字体(Myanmar3)在iText中无法正确呈现

来自分类Dev

在iText7中的jar中提供字体

来自分类Dev

为什么在iText PDF文档中快递字体无法使用?

来自分类Dev

使用Itext找出未在PDf中嵌入字体的位置或页面

来自分类Dev

图标字体导致IE8中的兼容模式

来自分类Dev

图标字体导致IE8中的兼容模式

来自分类Dev

我如何知道空白CD-R是否与LightScribe兼容?

来自分类Dev

我如何知道应用程序是否与 Android GO 兼容

来自分类Dev

iText字体策略

来自分类Dev

iText字体策略

来自分类Dev

Unicode 兼容的 devnagari 字体

来自分类Dev

如何从CMap访问元素?

来自分类Dev

如何从CMap访问元素?

Related 相关文章

热门标签

归档