java相关,关于使用itext导出pdf后,中文字体设置的问题。
我使用itext导出pdf后,想把字体设置为方正小标宋,但是这个iTextAsian.jar中文貌似只支持STSong(std)-Light这种,涉及到的简体中文编码集也...
我使用itext导出pdf后,想把字体设置为方正小标宋,但是这个iTextAsian.jar中文貌似只支持STSong(std)-Light这种,涉及到的简体中文编码集也是UniGB-UCS2-H,并不支持方针这种字体。
如何把方正这种字体和对应的编码集导入进去,或者说是否可以自己编写那个properties,求高手指教。若能解决还可加分。 展开
如何把方正这种字体和对应的编码集导入进去,或者说是否可以自己编写那个properties,求高手指教。若能解决还可加分。 展开
3个回答
展开全部
可以直接调用字体 写一个
BaseFont bf=BaseFont.createFont("字体",BaseFont.CP1250, BaseFont.EMBEDDED);
字体就设置,你的那个字体路径
BaseFont bf=BaseFont.createFont("字体",BaseFont.CP1250, BaseFont.EMBEDDED);
字体就设置,你的那个字体路径
追问
BaseFont ttChinese=BaseFont.createFont("C:\\Windows\\Fonts\\微软雅黑",BaseFont.CP1250, BaseFont.EMBEDDED);
我写完这个后,系统报一个错误:com.lowagie.text.DocumentException: Font 'C:\Windows\Fonts\微软雅黑' with 'Cp1250' is not recognized.
是Cp1250不支持微软雅黑的意思么?
追答
抱歉 一个地方说错了
BaseFont ttChinese=BaseFont.createFont("F://MSYHBD.TTF",BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font f=new Font(ttChinese);
Paragraph p = new Paragraph();
p.setFont(f);
p.add("你 好 David!");
字体要找对应的字体文件,BaseFont.IDENTITY_H 这个东西我忘了是什么了?好像只有这种编码方式,这样才能支持。BaseFont.EMBEDDED 表示字体是否嵌入PDF
展开全部
这个我以前遇到过,看看对你有没有帮助
1.将字符编码文件复制到系统字符集下面一份(好像是ttf)结尾的吧,因为有的系统有可能不带该字符集
2.将字符集放到java程序运行的根目录下,比如如果是webapp,那就放在WEB-INF/classes下
3.编辑模板文件的时候选择的字符好像是U什么开头的,我给忘了(反正不是特殊的),或者需要把字体导入到编辑器里(有这个选项),具体记不清楚了。
1.将字符编码文件复制到系统字符集下面一份(好像是ttf)结尾的吧,因为有的系统有可能不带该字符集
2.将字符集放到java程序运行的根目录下,比如如果是webapp,那就放在WEB-INF/classes下
3.编辑模板文件的时候选择的字符好像是U什么开头的,我给忘了(反正不是特殊的),或者需要把字体导入到编辑器里(有这个选项),具体记不清楚了。
追问
请问这个编辑模版文件在哪里?是不是应该我自己创建的properties?
以下是STSong-Light.properties的内容,应该咋修改啊。
Flags=6
FontBBox=[-25 -254 1000 880]
ItalicAngle=0
Ascent=880
Descent=-120
CapHeight=880
StemV=93
Panose=\u0001\......
Registry=Adobe
Ordering=GB1
Supplement=4
W=1 207 2 270 ......
W2=
另外能不能详细说说导入编辑器这个操作?
追答
能不能把你的问题这样描述一下?
1.功能描述
2.实现过程
3.存在的问题
这样的话才好解决
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-05-09
引用mengfei1001的回答:
可以直接调用字体 写一个
BaseFont bf=BaseFont.createFont("字体",BaseFont.CP1250, BaseFont.EMBEDDED);
字体就设置,你的那个字体路径
可以直接调用字体 写一个
BaseFont bf=BaseFont.createFont("字体",BaseFont.CP1250, BaseFont.EMBEDDED);
字体就设置,你的那个字体路径
展开全部
BaseFont bf=BaseFont.createFont("字体",BaseFont.CP1250, BaseFont.NOT_EMBEDDED);BaseFont.EMBEDDED处应写成BaseFont.NOT_EMBEDDED。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询