gpt4 book ai didi

java:将 HTML 转换为 PDF 无法处理 whth itext

转载 作者:太空宇宙 更新时间:2023-11-04 10:30:22 28 4
gpt4 key购买 nike

我想在我的java代码中使用itext将html转换为pdf,但似乎strong标签和em标签不起作用。我尝试在网络中搜索解决方案并跟踪我的代码以找出原因,但失败了。下面是我的java代码,我的html文件和生成的pdf快照。

   public static boolean html2pdf(String htmlContent, String path) {
try (FileOutputStream fos = new FileOutputStream(path);
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(htmlContent.getBytes())) {
Document document = new Document();
PdfWriter pdfWriter = PdfWriter.getInstance(document, fos);
document.open();
XMLWorkerHelper.getInstance().parseXHtml(pdfWriter, document, byteArrayInputStream,
Charset.forName("UTF-8"), new MyFontProvider());
document.close();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
static class MyFontProvider extends XMLWorkerFontProvider {
@Override
public Font getFont(String fontname, String encoding, float size, int style) {
Font cnFont = null;
try {
BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
cnFont = new Font(baseFont);
} catch (Exception e) {
e.printStackTrace();
}
if (cnFont == null) {
cnFont = super.getFont(fontname, encoding, size, style);
}
return cnFont;
}
}

和我的依赖项:

<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version>
</dependency>
<dependency>
<groupId>com.itextpdf.tool</groupId>
<artifactId>xmlworker</artifactId>
<version>5.5.13</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>

<!DOCTYPE html>
<html>
<head>
<title>title</title>
</head>
<body>
<p >
<strong>overstrike</strong>
</p>
<p>
<em>incline</em>
</p>
</body>
</html>

enter image description here

<小时/>

已解决

我使用 itext7 解决了这个问题。

最佳答案

MyFontProvider 中,如果第一次尝试加载字体成功(大概是这样),您将忽略 style 参数。

关于java:将 HTML 转换为 PDF 无法处理 <strong> 和 <em> whth itext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50074044/

28 4 0