Thank you for the information. As I am newbie to iText world, I am finding it
hard to put these things together. I found out that I have a font that
supports Ballot box unicode from this site
http://www.fileformat.info/info/unicode/char/2611/fontsupport.htm. According
that website, the font I picked is /Library/Fonts/Microsoft/Abadi MT
Condensed Light.
ls /Library/Fonts/Microsoft/Abadi\ MT\ Condensed\ Light
/Library/Fonts/Microsoft/Abadi MT Condensed Light
After looking at the XMLWorker documentation, I changed my method as shown
below to register the directory in which this font is located. I think the
Abadi font fails to register. I was trying to print all the registered fonts
and didn't find this in the list.
public ByteArrayOutputStream htmlToPdfFile(String pathToTemplate,
Map<String, String> dataMap) throws
FileNotFoundException,
IOException, TemplateException, DocumentException {
ClassTemplateLoader ctl = new ClassTemplateLoader(getClass(),
"/");
StringWriter sWriter = new StringWriter();
Configuration cfg = new Configuration();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
cfg.setTemplateLoader(ctl);
Template templateToProcess = cfg.getTemplate(pathToTemplate);
templateToProcess.process(dataMap, sWriter);
// int count = FontFactory.registerDirectories();
int msCount =
FontFactory.registerDirectory("/Library/Fonts/Microsoft/");
System.out.println("Fonts registered******** , Microsoft
fonts:"+msCount);
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, baos);
document.open();
Font font = FontFactory.getFont("Abadi MT Condensed Light");
for (Iterator iterator =
FontFactory.getRegisteredFamilies().iterator();
iterator.hasNext();) {
String type = (String) iterator.next();
System.out.println("Family:"+type);
}
byte[] barray = sWriter.toString().getBytes();
ByteArrayInputStream bais = new ByteArrayInputStream(barray);
HtmlPipelineContext htmlContext = new HtmlPipelineContext(null);
htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory());
htmlContext.setImageProvider(new AbstractImageProvider() {
public String getImageRootPath() {
return "js/";
}
});
htmlContext.setLinkProvider(new LinkProvider() {
public String getLinkRoot() {
return
"http://tutorial.itextpdf.com/src/main/resources/html/";
}
});
CSSResolver cssResolver = XMLWorkerHelper.getInstance()
.getDefaultCssResolver(true);
Pipeline<?> pipeline = new CssResolverPipeline(cssResolver,
new HtmlPipeline(htmlContext, new
PdfWriterPipeline(document,
writer)));
XMLWorker worker = new XMLWorker(pipeline, true);
XMLParser p = new XMLParser(worker);
p.parse(bais);
document.close();
return baos;
}
Also updated the css for body as below
body {
background-color: white;
color: black;
width: 100%;
height: 100%;
font-size: 8pt;
font-family: Abadi MT Condensed Light
}
Am I missing something here? Thanks again for prompt reply.
--
View this message in context:
http://itext-general.2136553.n4.nabble.com/Unable-to-parse-unicode-characters-in-Xmlworker-tp4659151p4659155.html
Sent from the iText - General mailing list archive at Nabble.com.
------------------------------------------------------------------------------
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13.
http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions
iText(R) is a registered trademark of 1T3XT BVBA.
Many questions posted to this list can (and will) be answered with a reference
to the iText book: http://www.itextpdf.com/book/
Please check the keywords list before you ask for examples:
http://itextpdf.com/themes/keywords.php