iText 7 是一个用于创建和处理 PDF 文件的 Java 库。它提供了一种使用 CSS 的方法来转换 HTML 文件为 PDF。
要使用 iText 7 转换 HTML 到 PDF,您需要:
在项目中添加 iText 7 依赖。
使用 iText 的 HtmlConverter 类将 HTML 文件转换为 PDF。
示例代码:
import com.itextpdf.html2pdf.HtmlConverter;
// Convert HTML file to PDF
HtmlConverter.convertToPdf(new FileInputStream("input.html"), new FileOutputStream("output.pdf"));
您可以使用 iText 的 ConverterProperties 类来设置 CSS 文件的路径,以便在转换时应用样式:
import com.itextpdf.html2pdf.HtmlConverter;
import com.itextpdf.html2pdf.resolver.font.DefaultFontProvider;
import com.itextpdf.html2pdf.css.media.MediaDeviceDescription;
import com.itextpdf.html2pdf.css.media.MediaType;
import com.itextpdf.html2pdf.css.parse.CssTextNode;
import com.itextpdf.html2pdf.css.parse.CssTextNodeFactory;
import com.itextpdf.html2pdf.css.parse.CssTextNodeFactoryImpl;
import com.itextpdf.html2pdf.css.parse.token.CssTokenType;
// Set up CSS file path
ConverterProperties properties = new ConverterProperties();
properties.setCssApplierFactory(new DefaultCssApplierFactory() {
@Override
public ICssApplier getCustomCssApplier(IElementNode tag) {
if (tag.name().equals("table")) {
return new TableCssApplier();
return null;
// Set up media device description
MediaDeviceDescription mediaDeviceDescription = new MediaDeviceDescription(MediaType.PRINT);
mediaDeviceDescription.setWidth(612).setHeight(792).setDpi(72);
properties.setMediaDeviceDescription(mediaDeviceDescription);
// Set up CSS text node factory
CssTextNodeFactory cssTextNodeFactory = new CssTextNodeFactoryImpl();
properties.setCssTextNodeFactory(cssTextNodeFactory);
// Convert HTML file to PDF
HtmlConverter.convertToPdf(new FileInputStream("input.html"), new FileOutputStream("output.pdf"), properties);
Vue.js