我想用iText 5.4.4和带有utf-8的剥皮碟生成pdf,特别是抛光变音符号,如ą,ź,ć等。
我有/ WEB-INF / resources / fonts /目录ARIALUNI.TTF字体。
我读了几篇关于创建pdf的教程,我决定使用这个解决方案:
HttpSession session = req.getSession();
ServletContext sc = session.getServletContext();
String p = sc.getResource("/WEB-INF/resources/fonts/ARIALUNI.TTF").toExternalForm();
<html><head>"
+ "<style type=\"text/css\" >"
+ "@font-face {\n" +
" font-family: arial;\n" +
" src: url("+p+");" +
" -fs-pdf-font-embed: embed;" +
" -fs-pdf-font-encoding: Identity-H;" +
"}</style></head><body><div style=\"width:100%;height:100%;\"><h3 style=\"margin-left:5px;margin-top:40px\">First</h3><div style=\"margin-left:15px;margin-top:15px\"><title>t</title><p>ążźćńółę</p></div>
<h3 style=\"margin-left:5px;margin-top:40px\">The dream</h3><div style=\"margin-left:15px;margin-top:15px\"></div></div></body></html>";
OutputStream os = new FileOutputStream(System.getProperty("java.io.tmpdir")+"raport.pdf");
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(str);
renderer.layout();
renderer.createPDF(os);
os.close();
但它不起作用。我认为问题在于字体的来源,如何在控制器中定义的mvc资源中访问文件,在这种情况下是字体文件?
当然是新年快乐:D