以正确的顺序从单个小册子PDF重命名PDF提取的页面文件

时间:2014-09-07 18:06:50

标签: java

我有大量的小册子格式的PDF文件。

例如,

假设一本小册子pdf文件有24页,每页包含2页,分为两侧 - 左侧和右侧。

第一页左侧有第48页编号,右侧有第1页编号 第二页左侧有第二页编号,右侧有第47页编号 第三页左侧有第46页编号,右侧有第3页编号

我已将Booket PDF文件垂直剪切,以便在单独的文件夹中使用批量操作分隔单个PDF文件。

例如,在上述情况下,剪切的PDF文件如下

第1份pdf文件 - 第48页 第2页pdf文件 - 第1页 第3页pdf文件 - 第2页 第4版pdf文件 - 第47页 第5版pdf文件 - 第46页 第6页pdf文件 - 第3页..

对于其他PDF文件也是如此....如果PDF文件有95页......

第一页左侧第95页编号,右侧第1页编号

现在的问题是如何在每个PDF文件的序列中正确地重命名和排列文件,以便我们可以将PDF文件最后合并为每个PDF文件......

按照上述文件的正确顺序正确重命名后

第1份pdf文件应指向第1页 第2个pdf文件应指向第2页 第3个pdf文件应指向第3页......

问题是我们计划拆分的所有PDF文件都有不同的页面集。例如

PDF1文件 - 如上所述有48页 - >文件应重命名并正确排列为1,2,3,4 ... 48 PDF2文件 - 有96页 - >文件应重命名并正确排列为1,2,3,4 ..... 96 PDF3文件 - 有56页 - >文件应重命名并正确排列为1,2,3,4 ..... 56

有人可以帮我一个程序,它会以正确的顺序重命名垂直切割的文件吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果页数是偶数,我已经解决了问题.....下面是您参考的代码...假设页数为32

如果页数是ODD ???那么怎么样?

包装样品;

import java.io.File;

公共类样本{

public static void main(String args[]) {

    String fileNameStartsWith = "_pdfsam_pdf_";
    String dir = "D:\\files\\";
    String destDir = "D:\\dest\\";  
    int totalPages = 32;
    int loops = totalPages/2;
    boolean pickFirst = true;
    int pageNbr1 = 0;
    int pageNbr2 = 0;
    int count = 1;
    for(int i=1; i <= loops; i++) {
        if(pickFirst == true) {
            pageNbr1 = totalPages;
            pageNbr2 = i;
            pickFirst = false;

totalPages--;
        } else {
            pageNbr1 = i;
            pageNbr2 = totalPages;
            totalPages--;
            pickFirst = true;
        }           
        System.out.println("PageNbr 1 "+pageNbr1);
        System.out.println("PageNbr 2 "+pageNbr2);
        File dest = new File(destDir);
        dest.mkdirs();
        File file1 = new File(dir + pageNbr1+fileNameStartsWith+".pdf");            
        renameFile(file1, dir, count, fileNameStartsWith, destDir, pageNbr1);
        count++;
        File file2 = new File(dir + pageNbr2+fileNameStartsWith+".pdf");
        renameFile(file2, dir, count, fileNameStartsWith, destDir, pageNbr2);
        count++;

    }

}


public static void renameFile(File file, String dir, int count, String fileNameStartsWith, String destDir, int pageNbr) {
    boolean success = new File(dir + count+fileNameStartsWith+".pdf").renameTo(new File(destDir + pageNbr+fileNameStartsWith+"modified"+".pdf"));
    System.out.println("success2 : "+success);                      
}

}