ITextPDF7 的一些功能的使用

这篇博客介绍了如何在Java项目中使用ITextPDF7库,包括创建Maven工程并导入依赖,分割PDF文件,插入新内容,删除页面,添加图片,剪切和粘贴页面内容,以及替换PDF指定页码等操作。详细示例和官方Demo链接可供进一步学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值