1.开始开发之前充分沟通并理解需求是项目顺利进行的前提。
2.其实打印可以用多种工具实现比如前端写好样式,组装好需要的数据,直接打开新的页面用浏览器打印插件打印网页即可,或者导出PDF实现打印。
simsun.ttc mac 和Windows可以用一个字体文件。
Linux系统需要网上找指定字体文件。
po.xml内容:
com.itextpdf
itextpdf
5.5.11
<dependency>
<groupId>com.itextpdf.tool</groupId>
<artifactId>xmlworker</artifactId>
<version>5.5.11</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>flying-saucer-pdf-itext5</artifactId>
<version>9.0.3</version>
</dependency>
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.itextpdf.text.pdf.BaseFont;
import java.io.IOException;
import java.io.OutputStream;
import org.xhtmlrenderer.pdf.ITextFontResolver;
import org.xhtmlrenderer.pdf.ITextRenderer;
/**
* 打印PDF
* String htmlFile = "/Users/hm/Downloads/pdf/4.html";
* String pdfFile = "/Users/hm/Downloads/pdf/test12.pdf";
*/
public class Html2PdfPrintUtil {
private static final Logger log = LoggerFactory.getLogger(Html2PdfPrintUtil.class);
public OutputStream createPdf(String htm, OutputStream os) throws IOException, com.itextpdf.text.DocumentException {
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(htm);
log.info("初始化pdf");
// step 3 解决中文支持
String opeSystem = getCurrentOperatingSystem();
ITextFontResolver fontResolver = render