3
我試圖在HTML中轉換PDF文件中的UTF-8字符(,,Ğ等)。我已閱讀了許多Q & A並編寫了下面的代碼。它在我的本地機器(Windows)中工作,但在測試服務器(Ubuntu)中不起作用。字體不在測試服務器中使用,某些字符丟失。問題是什麼?當使用itext將html轉換爲pdf時,自定義字體適用於Windows,但不適用於Ubuntu。
我的html文件使用的是在windows和ubuntu中不存在的字體。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
* { font-family:'Hickory Jack'; }
</style>
</head>
Java方法:它需要htmlText並返回pdf文件的字節。
public static byte[] convertHtmlToPdf(String htmlText) throws Exception{
String fontPath = PdfConverter.class.getResource("/fonts/").getPath();
XMLWorkerFontProvider fontImp = new XMLWorkerFontProvider(fontPath, null);
FontFactory.setFontImp(fontImp);
ByteArrayOutputStream output = new ByteArrayOutputStream();
InputStream is = new ByteArrayInputStream(htmlText.getBytes("UTF-8"));
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, output);
document.open();
XMLWorkerHelper xmlWorkerHelper = XMLWorkerHelper.getInstance();
xmlWorkerHelper.parseXHtml(writer, document, is, Charset.forName("UTF-8"),fontImp);
document.close();
byte[] bytes = output.toByteArray();
output.close();
return bytes;
}
你的測試服務器有什麼問題? –
生成的pdf文件中缺少一些字符,並且不使用該字體。 –