itext是一款优秀的pdf导出工具,支持中文。以下记录itext将html字符串(带中文)以pdf格式导出。
Java代码:
public class DocTest {
@Test
public void createPdf2() throws IOException, DocumentException {
// step 1
Document document = new Document();
// step 2
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("d://test3.pdf"));
// step 3
document.open();
// step 4
//显示中文必须设置font-family。这里为宋体(simsun)。中文可为汉字,也可为汉字的unicode
String str = "<div style='font-family:SimSun'>123\u6d4b\u8bd5abc测试</div>";
XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
ByteArrayInputStream is = new ByteArrayInputStream(str.getBytes("UTF-8"));
worker.parseXHtml(writer, document, is, Charset.forName("UTF-8"));
// step 5
document.close();
}
}
maven pom.xml配置:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- itext -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.8</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-pdfa</artifactId>
<version>5.5.8</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-xtra</artifactId>
<version>5.5.8</version>
</dependency>
<dependency>
<groupId>com.itextpdf.tool</groupId>
<artifactId>xmlworker</artifactId>
<version>5.5.8</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>