Uploaded image for project: 'PDFBox'
  1. PDFBox
  2. PDFBOX-2423

Page tree handling needs rewriting

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.8.7, 2.0.0
    • Fix Version/s: 2.0.0
    • Component/s: PDModel
    • Labels:
      None

      Description

      The way in which PDFBox handles the Page tree needs to be rewritten, preferably from scratch. Currently the document catalog returns the raw objects from the page tree, wrapped in either a PDPage or PDPageNode.

      We need to abstract over the page tree and get rid of PDPageNode, we should provide methods which can add/remove PDPage objects only. The existing low-level access to the page tree is not needed at the PD-level.

      Inheritance of page properties such as crop box, resources, and rotation should be reimplemented to use whatever new page tree abstraction we invent. We can finally remove the old broken methods which didn't look up the inheritance tree when retrieving these values.

        Attachments

        1. test-files.zip
          18.78 MB
          Ben McCann
        2. samsung_galaxy_s_4_um-p1.pdf
          623 kB
          Tilman Hausherr
        3. gs-bugzilla693322.pdf
          10 kB
          Tilman Hausherr
        4. gs-bugzilla689518.pdf
          30 kB
          Tilman Hausherr
        5. gs-bugzilla688601.pdf
          46 kB
          Tilman Hausherr
        6. gs-bugilla691763.pdf
          373 kB
          Tilman Hausherr
        7. Transparency_group_rewrite3.patch
          45 kB
          John Hewson
        8. gs-bugzilla690467.pdf
          2 kB
          Tilman Hausherr
        9. 025957.pdf
          287 kB
          Tilman Hausherr
        10. bugzilla869140.pdf
          3.36 MB
          Tilman Hausherr
        11. example_026.pdf-1.png
          55 kB
          Tilman Hausherr
        12. PDFBOX-1094-tiling_pattern.pdf
          11 kB
          Tilman Hausherr
        13. jagpdf_doc_patterns.pdf
          3 kB
          Tilman Hausherr
        14. gs-bugzilla694385.pdf
          295 kB
          Tilman Hausherr
        15. PDFBOX-1917.pdf-1.png-diff.png
          99 kB
          Tilman Hausherr
        16. PDFBOX-1917.pdf-1.png
          8 kB
          Tilman Hausherr
        17. PDFBOX-1711-cmyk.pdf-1.png-diff.png
          5 kB
          Tilman Hausherr
        18. PDFBOX-1711-cmyk.pdf-1.png
          18 kB
          Tilman Hausherr
        19. PDFBOX-1794-vattenfall.pdf-1.png-diff.png
          24 kB
          Tilman Hausherr
        20. PDFBOX-1794-vattenfall.pdf-1.png
          56 kB
          Tilman Hausherr
        21. PDFBOX-1058.pdf-4.png
          121 kB
          Tilman Hausherr
        22. PDFBOX-1058.pdf-1.png-diff.png
          47 kB
          Tilman Hausherr
        23. PDFBOX-1058.pdf-1.png
          659 kB
          Tilman Hausherr
        24. PDFBOX-1058.pdf-4.png-diff.png
          7 kB
          Tilman Hausherr
        25. Basiswissen-Vorschriften.pdf-4.png-diff.png
          11 kB
          Tilman Hausherr
        26. Basiswissen-Vorschriften.pdf-4.png
          190 kB
          Tilman Hausherr
        27. Basiswissen-Vorschriften.pdf-3.png-diff.png
          11 kB
          Tilman Hausherr
        28. Basiswissen-Vorschriften.pdf-3.png
          139 kB
          Tilman Hausherr
        29. 26101_Colors.ai-1.png-diff.png
          11 kB
          Tilman Hausherr
        30. 26101_Colors.ai-1.png
          17 kB
          Tilman Hausherr
        31. asy-functionshading.pdf-1.png
          90 kB
          Tilman Hausherr
        32. asy-functionshading.pdf-1.png-diff.png
          2 kB
          Tilman Hausherr

          Issue Links

            Activity

              People

              • Assignee:
                jahewson John Hewson
                Reporter:
                jahewson John Hewson
              • Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: