`

itext把pdf根据制定页数拆分成新得pdf

    博客分类:
  • java
 
阅读更多
网上看到得,改了很少得部分

public static void main(String[] args) {

partitionPdfFile("/Users/shuguang/Desktop/pdf/九型人格.pdf");

}

private static  int N = 0;
private static final int pageSize = 5;//每五页作为一个新得pdf

public static void partitionPdfFile(String filepath) 
    { 
        Document document = null; 
        PdfCopy copy = null; 
         
        try  
        { 
            PdfReader reader = new PdfReader(filepath); 
             
            int n = reader.getNumberOfPages();
            if(n%pageSize!=0){
            N = n/pageSize+1;
            }else{
            N = n/pageSize;
            }
            
            if(n < N) 
            { 
                System.out.println("The document does not have " + N + " pages to partition !"); 
                return; 
            } 
             
            int size = pageSize;          
            String staticpath = filepath.substring(0, filepath.lastIndexOf("\\")+1);             
            String savepath = null; 
            ArrayList<String> savepaths = new ArrayList<String>(); 
            for(int i=1; i<=N; i++) 
            {  //获取分批得pdf文件得路径数组
                if(i < 10) 
                { 
                    savepath = filepath.substring(filepath.lastIndexOf("\\")+1, filepath.length()-4); 
                    savepath = staticpath + savepath + "0" + i + ".pdf"; 
                    savepaths.add(savepath);                     
                } 
                else 
                { 
                    savepath = filepath.substring(filepath.lastIndexOf("\\")+1, filepath.length()-4); 
                    savepath = staticpath + savepath + i + ".pdf"; 
                    savepaths.add(savepath); 
                } 
            }            
             
            for(int i=0; i<N-1; i++) 
            {//生成除最后一个pdf得pdf文件
                document = new Document(reader.getPageSize(1)); 
                copy = new PdfCopy(document, new FileOutputStream(savepaths.get(i)));            
                document.open(); 
                for(int j=size*i+1; j<=size*(i+1); j++) 
                { 
                    document.newPage();  
                    PdfImportedPage page = copy.getImportedPage(reader, j); 
                    copy.addPage(page); 
                } 
                document.close(); 
            } 
             
              //最后一个文件单独处理,怕有页数不满足特定页数得需求
            document = new Document(reader.getPageSize(1)); 
            copy = new PdfCopy(document, new FileOutputStream(savepaths.get(N-1))); 
            document.open(); 
            for(int j=size*(N-1)+1; j<=n; j++) 
            { 
                document.newPage();  
                PdfImportedPage page = copy.getImportedPage(reader, j); 
                copy.addPage(page); 
            } 
            document.close(); 
 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } catch(DocumentException e) { 
            e.printStackTrace(); 
        } 
    } 
分享到:
评论

相关推荐

    使用itextpdf将PDF大文件拆分成若干份指定大小文件.zip

    本主题涉及的是如何使用Java和iTextPDF库来将一个大PDF文件拆分成多个指定大小的文件。首先,我们需要理解PDF文件的结构以及iTextPDF库的基本操作。 iTextPDF是一个强大的Java库,它提供了丰富的API来创建、修改和...

    itext合并和拆分PDF实例

    根据提供的文件信息,我们可以深入探讨如何使用iText库在Java环境中进行PDF文件的合并与拆分操作。以下是对这些操作的详细解释。 ### iText简介 iText 是一个开源库,用于生成、修改以及处理PDF文件。它支持多种...

    C#拆分PDF(iText)

    在这个主题中,“C#拆分PDF(iText)”涉及到如何利用C#和iText库将一个PDF文档拆分为多个小文件,并根据特定规则(如Excel指定的规则)进行重命名。 首先,我们需要理解PDF拆分的基本概念。PDF(Portable Document ...

    iText_pdf.rar_iText pdf_itext PDF类

    标题中的“iText_pdf.rar_iText pdf_itext PDF类”表明这是一个关于iText的压缩包,包含了与创建PDF相关的源代码和示例。 iText的核心功能包括但不限于以下几点: 1. **文本和图像处理**:你可以使用iText向PDF中...

    Android使用iText生成pdf并读取pdf内容

    implementation 'com.itextpdf:itextg:5.5.13' } ``` 接下来,我们来讨论如何生成PDF。在Android中,通常会使用`Document`类作为PDF的容器,`Paragraph`和`Font`类用于构造文本内容。以下是一个简单的例子,展示...

    itextpdf.jar

    iTextPDF,这个名字源自荷兰语“tekst”,意为“文本”,它由iText Software公司开发,是一个开放源代码的PDF库,主要支持Java和.NET平台。iTextPDF提供了一整套API,使得开发者能够轻松创建、修改和处理PDF文档,...

    itext7 pdf转图片

    在IT行业中,iText是一个广泛使用的Java和.NET库,用于创建、编辑和处理PDF文档。在最新的版本iText 7中,它提供了丰富的功能,包括将PDF文档转换为图像。这个话题涉及到PDF处理和图像转换两个核心领域。下面将详细...

    利用ITEXT、PDFBOX将PDF转为图片

    3. **获取PDF页面**:使用`reader.getNumberOfPages()`获取PDF的总页数,然后可以逐页处理。例如,`reader.getPage(n)`返回第n页的`PdfImportedPage`对象。 4. **转换为图片**:这里需要用到PDFBOX。创建一个`...

    itext 生成pdf 目录

    iText 是一个强大的Java库,专门用于创建和修改PDF文档。在PDF文档中,目录(或书签)是用户友好的导航工具,可以帮助读者快速跳转到特定章节或页面。本篇文章将深入探讨如何使用iText来生成PDF的目录。 首先,理解...

    iText操作Pdf简单整理

    在使用iText时,首先需要引入相应的库文件,如压缩包中的`itextpdf-5.5.1.jar`,这是iText的主要库,包含了处理PDF文档的核心功能。如果需要处理中文字符或者亚洲语言,还需要引入`itext-asian-5.1.0.jar.zip`解压后...

    Itext删除PDF的图层

    这可能涉及遍历PDF的OCGs,检查其ID或名称,然后根据用户需求决定是否从PDF中删除。一旦确定要移除的图层,`OCGRemover`会更新PDF的结构,确保删除后的文件仍然有效且符合PDF标准。 **实际应用** 在某些场景下,...

    使用IText生成PDF和WORD文档

    import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; import java.io.FileOutputStream; import java...

    itext根据模板导出pdf.zip

    import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.*; public class PdfGenerator { public static void main(String[] args) throws Exception { // 加载模板 PdfReader reader = new Pdf...

    使用itextpdf将excel转化为pdf + pdf加水印

    1. **导入itextpdf库**:在项目中添加itextpdf的依赖,这通常通过Maven或Gradle等构建工具完成。 2. **读取Excel**:使用Apache POI等库读取Excel文件,获取其内容和样式信息。 3. **创建PDF文档**:初始化一个...

    itext生成PDF开发文档

    import com.itextpdf.kernel.pdf.PdfDocument; import com.itextpdf.kernel.pdf.PdfWriter; import com.itextpdf.layout.Document; public class create_PDF { public static void main(String args[]) throws ...

    itextpdf 导出pdf 表格 自动分页中文 目录

    在IT行业中,PDF(Portable Document Format)是一种广泛用于文档共享的标准格式,因为它能保持文档的原始布局和格式不受...总之,iTextPDF库提供了强大的工具,使得在Java环境中生成高质量的PDF文档变得简单而高效。

    itextpdf-5.5.13

    《iTextPDF 5.5.13:创建PDF文件的高效工具》 iTextPDF是一款功能强大的Java库,主要用于创建、编辑以及处理PDF文档。版本5.5.13是其历史版本之一,提供了丰富的API和功能,使得开发者能够方便地在Android平台上...

    java使用itext导出PDF文本绝对定位(实现方法)

    java使用iText导出PDF文本绝对定位(实现方法) iText是一个流行的Java类库,用于生成PDF文档。下面我们将探讨如何使用iText在Java中导出PDF文本,并实现绝对定位。 iText简介 iText是一个开源的Java类库,用于...

    Itext生成PDF所需要的最全Jar包

    - `itextpdf`:这个模块是Itext的主要接口,包含了生成PDF所需的主要API。你可以使用这些API创建新的PDF文档,或者对已有的PDF进行操作。 在实际使用中,你需要将这些Jar包添加到你的项目类路径中,然后就可以通过...

    adobe pdf编辑器 java利用itextpdf根据模板导出pdf配套资源

    开发者可以根据实际需求,结合Adobe PDF编辑器的可视化编辑和iTextPDF的编程能力,实现各种自定义的PDF生成逻辑。 总之,Adobe PDF编辑器与Java的iTextPDF库结合,为企业提供了灵活且高效的PDF文档处理方案,无论是...

Global site tag (gtag.js) - Google Analytics