我有大量的小册子格式的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
有人可以帮我一个程序,它会以正确的顺序重命名垂直切割的文件吗?
提前致谢。
答案 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);
}
}