开始
在近期项目中使用到itextpdf用于导出pdf,主要是html代码块(这块主要用到freemarker作为传值。下文会用到freemarker如何将数据库html代码块及数据整合成完整html)。
maven引入必须的包
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-pdfa</artifactId>
<version>5.5.7</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-xtra</artifactId>
<version>5.5.7</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.7</version>
</dependency>
HtmlUtil.java
package xxx.xxx;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.i18n.LocaleContextHolder;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.Font;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.RectangleReadOnly;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.tool.xml.XMLWorkerHelper;
public class HtmlUtil {
private static final Logger logger = LoggerFactory.getLogger(HtmlUtil.class);
private static final String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>";
private static final String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>";
private static final String regEx_html = "<[^>]+>";
private static final String regEx_space = "\\s*|\t|\r|\n";
public static String delHTMLTag(String htmlStr) {
Pattern p_script = Pattern.compile("<script[^>]*?>[\\s\\S]*?<\\/script>", 2);
Matcher m_script = p_script.matcher(htmlStr);
htmlStr = m_script.replaceAll("");
Pattern p_style = Pattern.compile("<style[^>]*?>[\\s\\S]*?<\\/style>", 2);
Matcher m_style = p_style.matcher(htmlStr);
htmlStr = m_style.replaceAll("");
Pattern p_html = Pattern.compile("<[^>]+>", 2);
Matcher m_html = p_html.matcher(htmlStr);
htmlStr = m_html.replaceAll("");
Pattern p_space = Pattern.compile("\\s*|\t|\r|\n", 2);
Matcher m_space = p_space.matcher(htmlStr);
htmlStr = m_space.replaceAll("");
return htmlStr.trim();
}
public static String getT

本文介绍如何使用iTextPDF库结合Freemarker模板引擎将HTML代码块和数据整合成完整的HTML,并最终导出为PDF文件。通过Maven引入必要的依赖包,演示了如何设置字体、页面大小以及如何解析HTML到PDF。
2311

被折叠的 条评论
为什么被折叠?



