【问题标题】:iText basefont mingliu.ttc italic cannot workiText basefont mingliu.ttc 斜体不能工作
【发布时间】:2015-01-07 17:53:11
【问题描述】:

我想以mingliu字体样式斜体显示文本,使用以下代码但失败,输出仍然是标准样式,而不是斜体(我使用的是iText 2)。

PdfContentByte cb = writer.getDirectContent();
..................
String ttfPath = null;
ttfPath = BaseSection.class.getResource("/WEB-INF/lib/mingliu.ttc").getPath();
try{
   this.bfi = BaseFont.createFont(ttfPath+",0,Italic", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
   cb.setFontAndSize(bfi, 8);
   ..........
    cb.showText(companyText);
 }

有什么方法可以使用BaseFont.createFont 以斜体显示mingliu 文本? 谢谢。

【问题讨论】:

  • 您的代码不应该工作。至于使用 iText 2,请阅读 StackOverflow 问题的答案Can iText 2.1.7 or earlier can be used commercially? 你的问题有答案,但这无关紧要,因为你不应该使用 iText 2。
  • 那如何让代码工作?
  • 正如您在FAQ 中看到的,不再支持 iText 2。你为什么还在用它?您是否正在开始一个基于 iText 2 的新项目?请不要。
  • 使用iText2维护一个非常老的项目,需要使用MingLiu字体的斜体样式添加页脚。
  • 非常老的项目需要维护。升级到最新的 iText 可能是个好主意。另外:您的问题的答案可以在The Best iText Questions on StackOverflow 中找到,所以您为什么不开始阅读...

标签: itext


【解决方案1】:

我发现以下可以解决我的问题

PdfContentByte cb = writer.getDirectContent();
cb.saveState(); 
String ttfPath = BaseSection.class.getResource("/WEB-INF/lib/mingliu.ttc").getPath();
bf = BaseFont.createFont(ttfPath+",0", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
String companyText = "abc";
Font font = new Font(bf, 8, Font.ITALIC);
Chunk chunk = new Chunk(companyTextC, font);
Phrase phrase = new Phrase(chunk);
ColumnText.showTextAligned(cb, Element.ALIGN_RIGHT, phrase, document.right(), 1, 0);
cb.restoreState();

希望这可以帮助其他有类似问题的人。

【讨论】:

    猜你喜欢
    • 2017-02-18
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 2013-02-26
    相关资源
    最近更新 更多