ITextPDF7 的一些功能的使用
1、创建Maven工程,导入依赖
<!-- https://mvnrepository.com/artifact/com.itextpdf/itext7-core -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-core</artifactId>
<version>7.0.3</version>
<type>pom</type>
</dependency>
部分实例:
2、分割PDF文件
//多页分割单页实现
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.utils.PageRange;
import com.itextpdf.kernel.utils.PdfSplitter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
//每页分页
public class PDFSplitter {
//需要被分割的文件
private static final String ORIG = "E:/pdf/signed_out.pdf";
private static final String OUTPUT_FOLDER = "E:/pdf/myfiles/";
public static void main(String args[]) throws IOException {
final int maxPageCount = 1; // 创建的页数最少要两页以上
PdfDocument pdfDocument = new PdfDocument(new PdfReader(new File(ORIG)));
PdfSplitter pdfSplitter = new PdfSplitter(pdfDocument) {
int partNumber = 1;
@Override
protected PdfWriter getNextPdfWriter(PageRange documentPageRange) {
try {
return new PdfWriter(OUTPUT_FOLDER + "splitDocument_" + partNumber++ + ".pdf");
} catch (final FileNotFoundException ignored) {
throw new RuntimeException();
}
}
};
//每次分的张数,
pdfSplitter.splitByPageCount(maxPageCount, (pdfDoc, pageRange) -> pdfDoc.close());
pdfDocument.close();
}
}
另一种写法:
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.utils.PageRange;
import com.itextpdf.kernel.utils.PdfSplitter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
public class MergeAndCount {
public static final String DEST = "E:/pdf/myfiles/";
public static final String RESOURCE = "E:/pdf/signed_out.pdf";
public static void main(String[] args) throws IOException {
File file = new File(DEST);
file.getParentFile().mkdirs();
new MergeAndCount().manipulatePdf(DEST);
}
protected void manipulatePdf(final String dest) throws IOException {
PdfDocument pdfDoc = new PdfDocument(new PdfReader(RESOURCE));
List<PdfDocument> splitDocuments = new PdfSplitter(pdfDoc) {
int<