1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > itext html 转换 pdf文件 利用itext将html文件转化pdf文件(5)——多个文件的合并

itext html 转换 pdf文件 利用itext将html文件转化pdf文件(5)——多个文件的合并

时间:2022-08-05 12:15:09

相关推荐

itext html 转换 pdf文件 利用itext将html文件转化pdf文件(5)——多个文件的合并

工作中经常会遇到将多个html文件转化为pdf,并且将pdf转化之后的文件进行合并。官方参考文档

下面来介绍简单的操作:import java.io.ByteArrayInputStream;

import java.io.FileInputStream;

import java.io.IOException;

import com.itextpdf.html2pdf.ConverterProperties;

import com.itextpdf.html2pdf.HtmlConverter;

import com.itextpdf.html2pdf.css.media.MediaDeviceDescription;

import com.itextpdf.html2pdf.css.media.MediaType;

import com.itextpdf.io.source.ByteArrayOutputStream;

import com.itextpdf.kernel.pdf.PdfDocument;

import com.itextpdf.kernel.pdf.PdfReader;

import com.itextpdf.kernel.pdf.PdfWriter;

import com.itextpdf.kernel.utils.PdfMerger;

import com.itextpdf.layout.font.FontProvider;

public class ManyToOne {

public static String baseuri = "G:\\TPractice\\workOne\\TransforePdf\\src\\main\\resources\\multipliesToOne\\";

// html source file, use array to savage html

public static String[] htmlSource = {

String.format("%sinvitation.html", baseuri),

String.format("%ssxsw.html", baseuri),

String.format("%smovies.html", baseuri) };

public static String des = "G:\\TPractice\\workOne\\TransforePdf\\src\\main\\resources\\result\\merge.pdf";

public static void main(String[] args) {

try {

createPdf(baseuri, htmlSource, des);

System.out.println("ok");

} catch (IOException e) {

e.printStackTrace();

}

}

// create pdf

public static void createPdf(String baseUri, String[] src, String dest) throws IOException {

ConverterProperties properties = new ConverterProperties();

properties.setBaseUri(baseUri);

//add font

FontProvider font = new FontProvider();

font.addStandardPdfFonts();

font.addFont("C:\\Windows\\Fonts\\STHeitibd.ttf");// 你的字体文件

properties.setFontProvider(font);

//set media print style

MediaDeviceDescription mediaDeviceDescription = new MediaDeviceDescription(MediaType.SCREEN);

properties.setMediaDeviceDescription(mediaDeviceDescription);

PdfWriter writer = new PdfWriter(dest);

PdfDocument pdf = new PdfDocument(writer);

PdfMerger merger = new PdfMerger(pdf);

//use foreach to create pdf and merge the pdf which converted yet

for (String html : src) {

ByteArrayOutputStream baos = new ByteArrayOutputStream();

PdfDocument temp = new PdfDocument(new PdfWriter(baos));

HtmlConverter.convertToPdf(new FileInputStream(html), temp, properties);

temp = new PdfDocument(new PdfReader(new ByteArrayInputStream(baos.toByteArray())));

merger.merge(temp, 1, temp.getNumberOfPages());

temp.close();

}

pdf.close();

}

}

没有什么可以说的,参考的都是官方文档,只需要自己定义好路径即可。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。