使用itextPDF5.3.4.jar将HTML中的字体样式合并到PDF转换中

时间:2014-03-28 13:37:50

标签: itextsharp itextpdf

我正在尝试在HTML中包含多种字体样式,以便使用以下代码段反映在我的代码中。当在font face标签中提到字体样式时,html文本不会被拾取以PDF格式显示。

String htmlText = value.trim();

             ColumnText ct = new ColumnText(over);
             List<AcroFields.FieldPosition> positions1 = form.getFieldPositions(key);
             Rectangle rect = positions1.get(0).position;
             ct.setSimpleColumn(rect.getLeft(), rect.getBottom(),rect.getRight(), rect.getTop());
             Reader htmlreader = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(htmlText.getBytes("UTF-8"))));
             StyleSheet styles = new StyleSheet();
             styles.loadTagStyle("body", "font", "Comic Sans MS");
             List<Element> objects = HTMLWorker.parseToList(htmlreader,styles);

             for (Element element : objects) 
             {
                 ct.addElement(element);
           }
            ct.go();

尽管提到它,StyleSheet类并没有反映PDF上的任何字体。它始终默认为Arial。

我要求Font tag的face属性中提到的字体应该反映在PDF中。在这种情况下我必须采用哪些方法。

1 个答案:

答案 0 :(得分:1)

你注册了字体吗? iTextSharp不会扫描系统中的已安装字体,除非你告诉它,因为它可能导致性能/缓存噩梦。

FontFactory.Register("C:\\Windows\\Fonts\\comic.ttf", "Comic Sans MS");

您也可以告诉iTextSharp扫描您的字体文件夹,但我建议您不要这样做:

FontFactory.RegisterDirectory("C:\\WINDOWS\\Fonts")