@Test public void keepsOutline() throws IOException { List<PdfSource<?>> inputs = new ArrayList<PdfSource<?>>(); inputs.add(customInput("pdf/large_outline.pdf")); inputs.add(customInput("pdf/test_outline.pdf")); setUpParameters(inputs); parameters.setOutlinePolicy(OutlinePolicy.RETAIN); parameters.addPage(0, 3); parameters.addPage(1, 3); parameters.addPage(0, 2); parameters.addPage(1, 2); parameters.addPage(0, 1); parameters.addPage(1, 1); testContext.pdfOutputTo(parameters); execute(parameters); PDDocument outDocument = testContext.assertTaskCompleted(); PDDocumentOutline outline = outDocument.getDocumentCatalog().getDocumentOutline(); assertNotNull("Has outline", outline); for(int i = 1; i < 34; i++) { testContext.assertOutlineContains("Bookmark" + i); } for(int i = 34; i <= 49; i++) { testContext.assertOutlineDoesntContain("Bookmark" + i); } testContext.assertOutlineContains("Test first level."); testContext.assertOutlineContains("Secondpage test first level."); }