FileOutputStream outputStream=null; try{ outputStream=new FileOutputStream(saveFilePath); PdfWriter writer = new PdfWriter(saveFilePath); PdfDocument pdfDoc = new PdfDocument(writer); pdfDoc.setDefaultPageSize(PageSize.A4); ConverterProperties converterProperties = new ConverterProperties(); FontProvider provider = new FontProvider(); provider.addFont("D:/home/file/static/fonts/SourceHanSansSC-Regular.otf"); provider.addStandardPdfFonts(); provider.addSystemFonts(); byte[] fontBytes = Files.readAllBytes(Paths.get("D:/home/file/static/fonts/SourceHanSansSC-Regular.otf")); PdfFont pdfFont = PdfFontFactory.createFont(fontBytes, PdfEncodings.IDENTITY_H, false); pdfDoc.addFont(pdfFont); converterProperties.setFontProvider(provider); converterProperties.setCharset("UTF-8"); pdfDoc.addEventHandler(PdfDocumentEvent.END_PAGE, new PDFBuilder(pdfFont,title,pdfTime,footLabel)); Document doc = HtmlConverter.convertToDocument(htmlData, pdfDoc, converterProperties); doc.close(); writer.close(); outputStream.close(); }catch(Exception ex){ throw new PDFException("PDF export to File fail",ex); }finally{ IOUtils.closeQuietly(outputStream); },字体文件有斜体中文字形,但是中文斜体还是无法展示
时间: 2024-03-04 21:52:41 浏览: 54
java中FileOutputStream中文乱码问题解决办法
这个问题可能是因为字体文件中没有包含中文斜体字形的原因。可以尝试添加包含中文斜体字形的字体文件,或者在代码中使用其他的字体来替换。你可以尝试使用其他的中文字体,比如思源黑体、方正兰亭黑等,看看是否可以解决这个问题。另外,你也可以检查一下字体文件中是否包含了中文斜体字形,如果没有的话,需要找到包含中文斜体字形的字体文件。
阅读全文