I am trying to include multiple font styles in HTML to be reflected on my code using the following snippet. The html text when having font style mentioned in font face tag, is not being picked up to be displayed in 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();

The StyleSheet class is not reflecteing any font on the PDF inspite of mentioning it. It defaults to Arial always.

I require that whatever is the font mentioned in Font tag's face attribute should be reflected in PDF. What are the methods that i must incorporate in such situation.

有帮助吗?

解决方案

Did you register the font? iTextSharp doesn't scan the system for installed fonts unless you tell it to since it could lead to a performance/caching nightmare.

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

You can also tell iTextSharp to scan your font folder but I'd recommend against it:

FontFactory.RegisterDirectory("C:\\WINDOWS\\Fonts")
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top