Author: lehmi Date: Mon Nov 13 07:21:43 2023 New Revision: 1913746 URL: http://svn.apache.org/viewvc?rev=1913746&view=rev Log: PDFBOX-5712: DRY refactoring
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PageExtractor.java Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PageExtractor.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PageExtractor.java?rev=1913746&r1=1913745&r2=1913746&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PageExtractor.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PageExtractor.java Mon Nov 13 07:21:43 2023 @@ -18,12 +18,9 @@ package org.apache.pdfbox.multipdf; import java.io.IOException; +import java.util.List; -import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.LogManager; -import org.apache.pdfbox.cos.COSName; import org.apache.pdfbox.pdmodel.PDDocument; -import org.apache.pdfbox.pdmodel.PDPage; /** * This class will extract one or more sequential pages and create a new document. @@ -31,8 +28,6 @@ import org.apache.pdfbox.pdmodel.PDPage; */ public class PageExtractor { - private static final Logger LOG = LogManager.getLogger(PageExtractor.class); - private final PDDocument sourceDocument; // first page to extract is page 1 (by default) @@ -77,23 +72,16 @@ public class PageExtractor */ public PDDocument extract() throws IOException { - PDDocument extractedDocument = new PDDocument(); - extractedDocument.setDocumentInformation(sourceDocument.getDocumentInformation()); - extractedDocument.getDocumentCatalog().setViewerPreferences( - sourceDocument.getDocumentCatalog().getViewerPreferences()); - - for (int i = startPage; i <= endPage; i++) + if (endPage - startPage + 1 <= 0) { - PDPage page = sourceDocument.getPage(i - 1); - PDPage imported = extractedDocument.importPage(page); - if (page.getResources() != null && !page.getCOSObject().containsKey(COSName.RESOURCES)) - { - imported.setResources(page.getResources()); - LOG.info("Done in PageExtractor"); // follow-up to warning in importPage - } + return new PDDocument(); } - - return extractedDocument; + Splitter splitter = new Splitter(); + splitter.setStartPage(Math.max(startPage, 1)); + splitter.setEndPage(Math.min(endPage, sourceDocument.getNumberOfPages())); + splitter.setSplitAtPage(getEndPage() - getStartPage() + 1); + List<PDDocument> splitted = splitter.split(sourceDocument); + return splitted.get(0); } /**