Мое основное намерение состоит в том, что мой код должен принимать pdf и интервалы в качестве входных данных, я принимаю выборочные входные данные как 2,6, где моя программа должна делить pdf на 3 части, т.е. 1,2 страницы как 1pdf. 3,5,6 как другие PDF и оставшиеся страницы в один PDF (если есть какая-либо дополнительная страница). Я не получаю требуемый вывод !! это код, который я написал
import org.apache.pdfbox.multipdf.Splitter;
import org.apache.pdfbox.pdmodel.PDDocument;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class PDFSplitter {
public List<String> split(String fileName, String password, int[] splitIndices) throws IOException {
//Loading an existing PDF document
File file = new File(fileName);
PDDocument document = null;
if (password != null && !password.trim().equals("")) {
document = PDDocument.load(file, password);
} else {
document = PDDocument.load(file);
}
//Instantiating Splitter class
//splitting the pages of a PDF document
List<PDDocument> splitDocs = new ArrayList<PDDocument>();
int startPage = 0;
for (int splitIdex : splitIndices) {
Splitter splitter = new Splitter();
splitter.setStartPage(startPage);
splitter.setSplitAtPage(splitIdex +startPage);
splitter.setEndPage(splitIdex+1);
List<PDDocument> documents = splitter.split(document);
splitDocs.addAll(documents);
startPage = splitIdex + 1;
}
if(startPage <= document.getNumberOfPages())
{
Splitter splitter = new Splitter();
splitter.setStartPage(startPage);
splitter.setSplitAtPage(document.getNumberOfPages() - startPage);
splitter.setEndPage(document.getNumberOfPages());
List<PDDocument> documents = splitter.split(document);
splitDocs.addAll(documents);
}
List<String> splitFileNames = new ArrayList<String>();
for (PDDocument splitDoc : splitDocs) {
String fileName1 = fileName.substring(0, fileName.indexOf(".PDF")) + splitDocs.indexOf(splitDoc) + ".pdf";
splitDoc.save(fileName1);
splitFileNames.add(fileName1);
}
document.close();
return splitFileNames;
}
public static void main(String[] args) throws IOException {
PDFSplitter splitter = new PDFSplitter();
int[] pages = {3,5};
List<String> splitFileNames = splitter.split("C:\\Users\\RSk\\Desktop\\rsk.pdf","", pages);
System.out.println("splitFileNames = " + splitFileNames);
}
}