@Test public void getPages() { ExtractPagesParameters victim = new ExtractPagesParameters(PredefinedSetOfPages.EVEN_PAGES); assertEquals(5, victim.getPages(10).size()); ExtractPagesParameters victim2 = new ExtractPagesParameters(); victim2.addPageRange(new PageRange(12)); assertEquals(4, victim2.getPages(15).size()); }
@Test public void predefinedPages_ODD_PAGES() { ExtractPagesParameters parameters = defaultCommandLine().with("-m", "odd").invokeSejdaConsole(); assertContainsAll(Arrays.asList(1, 3, 5), parameters.getPages(5)); }
@Test public void predefinedPages_EVEN_PAGES() { ExtractPagesParameters parameters = defaultCommandLine().with("-m", "even").invokeSejdaConsole(); assertContainsAll(Arrays.asList(2, 4), parameters.getPages(5)); }
@Test public void predefinedPages_ALL_PAGES() { ExtractPagesParameters parameters = defaultCommandLine().with("-m", "all").invokeSejdaConsole(); assertContainsAll(Arrays.asList(1, 2, 3, 4, 5), parameters.getPages(5)); }
public void execute(ExtractPagesParameters parameters) throws TaskException { File tmpFile = createTemporaryPdfBuffer(); LOG.debug("Created output temporary buffer {} ", tmpFile); LOG.debug("Opening input {} ", parameters.getSource()); reader = parameters.getSource().open(sourceOpener); Set<Integer> pages = parameters.getPages(reader.getNumberOfPages()); if (pages == null || pages.isEmpty()) { throw new TaskExecutionException("No page has been selected for extraction."); } copier = new DefaultPdfCopier(reader, tmpFile, parameters.getVersion()); copier.setCompression(parameters.isCompress()); LOG.trace("Created DefaultPdfCopier"); int currentStep = 0; for (Integer page : pages) { LOG.trace("Adding page {}", page); copier.addPage(reader, page); notifyEvent(getNotifiableTaskMetadata()).stepsCompleted(++currentStep).outOf(pages.size()); } copier.freeReader(reader); closeResources(); outputWriter.setOutput(file(tmpFile).name(parameters.getOutputName())); parameters.getOutput().accept(outputWriter); LOG.debug("Pages extracted and written to {}", parameters.getOutput()); }
@Test public void extractPagesInvertedSelection() throws IOException { parameters = new ExtractPagesParameters(); parameters.setInvertSelection(true); parameters.addPageRange(new PageRange(7, 9)); parameters.addSource(customInput("pdf/test-pdf.pdf")); parameters.setExistingOutputPolicy(ExistingOutputPolicy.OVERWRITE); assertThat(parameters.getPages(11), is(new HashSet<>(Arrays.asList(1, 2, 3, 4, 5, 6, 10, 11)))); testContext.directoryOutputTo(parameters); execute(parameters); testContext.assertTaskCompleted(); testContext.assertCreator().assertPages(8); }
sourceDocumentHandler.getPermissions().ensurePermission(PdfAccessPermission.ASSEMBLE); Set<Integer> pages = parameters.getPages(sourceDocumentHandler.getNumberOfPages()); if (pages == null || pages.isEmpty()) { throw new TaskExecutionException("No page has been selected for extraction.");
sourceDocumentHandler.getPermissions().ensurePermission(PdfAccessPermission.ASSEMBLE); Set<Integer> pages = parameters.getPages(sourceDocumentHandler.getNumberOfPages()); if (pages == null || pages.isEmpty()) { throw new TaskExecutionException("No page has been selected for extraction.");