diff --git a/sejda-sambox/src/main/java/org/sejda/impl/sambox/MergeTask.java b/sejda-sambox/src/main/java/org/sejda/impl/sambox/MergeTask.java index fc3d2faf7..431d3e2d0 100644 --- a/sejda-sambox/src/main/java/org/sejda/impl/sambox/MergeTask.java +++ b/sejda-sambox/src/main/java/org/sejda/impl/sambox/MergeTask.java @@ -157,13 +157,14 @@ public void execute(MergeParameters parameters) throws TaskException { // skip the cover/title document, don't add it to the ToC } else { tocCreator.pageSizeIfNotSet(currentPageSize); + String tocText = sourceBaseName; if (ToCPolicy.DOC_TITLES == parameters.getTableOfContentsPolicy()) { - sourceBaseName = ofNullable( + tocText = ofNullable( sourceDocumentHandler.getUnderlyingPDDocument().getDocumentInformation()) .map(i -> i.getTitle()).filter(StringUtils::isNotBlank) .orElse(sourceBaseName); } - tocCreator.appendItem(sourceBaseName, pagesCounter, importedPage); + tocCreator.appendItem(tocText, pagesCounter, importedPage); } } diff --git a/sejda-sambox/src/test/java/org/sejda/impl/sambox/MergeSamboxTaskTest.java b/sejda-sambox/src/test/java/org/sejda/impl/sambox/MergeSamboxTaskTest.java index f90dc272d..09ddcd72e 100644 --- a/sejda-sambox/src/test/java/org/sejda/impl/sambox/MergeSamboxTaskTest.java +++ b/sejda-sambox/src/test/java/org/sejda/impl/sambox/MergeSamboxTaskTest.java @@ -524,6 +524,23 @@ public void pageFooterAndToc() throws IOException { }); } + @Test + public void pageFooterAndTocwithDocTitles() throws IOException { + List input = new ArrayList(); + input.add(new PdfMergeInput(regularInput())); + input.add(new PdfMergeInput(customInput("pdf/test_file.pdf", "my_file.pdf"))); + MergeParameters parameters = setUpParameters(input); + parameters.setTableOfContentsPolicy(ToCPolicy.DOC_TITLES); + parameters.setFilenameFooter(true); + testContext.pdfOutputTo(parameters); + execute(parameters); + testContext.assertTaskCompleted(); + testContext.assertPages(16).forEachPdfOutput(d -> { + assertFooterHasText(d.getPage(1), "test-file 2"); + assertFooterHasText(d.getPage(12), "my_file 13"); + }); + } + @Test public void pageFooterAndTocAddBlank() throws IOException { MergeParameters parameters = setUpParameters(getInput());