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

Annotations parsed from XFDF containing ampersand characters are not properly imported

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.0.3, 2.0.4, 2.0.5, 2.0.6
    • 2.0.13, 3.0.0 PDFBox
    • AcroForm, PDModel
    • java 1.8.0_112

    Description

      Annotations containing "&" in their text are displayed incorrectly when parsed unmodified from XFDF (the ampersands are encoded as "&" there) and added to a PDF document.
      This occurs for both "text comment" and "text box" type annotations.
      However, if the XFDF is modified by replacing "&" with "&" prior to parsing, the imported annotations are then displayed correctly.

      The attached code produces two pdf files. One is the PDF with the unmodified XFDF imported, two the PDF with the modifed XFDF.

      A XFDF containing both a text box and text comment annotation is embedded in the source and attached as a separated file.

      Update 23.03.2017 : This problem persists in 2.0.5 and we noticed the same corruption of merged annotations occur, if the annotation text contains a "<" (encoded as "lt" entity)

      Update 17.10.2018 : This corruption is caused by FDFAnnotation.richContentsToString. This method reads "<" and "&" from the parsed values in the document and puts them as such into the markup, but these characters must be replaced with their entities.

      I'll add this substitution to my proposed bugfix of 4345, please refer to https://issues.apache.org/jira/projects/PDFBOX/issues/PDFBOX-4345

      Attachments

        1. MergeTest.java
          4 kB
          Kai Keggenhoff
        2. output1.pdf
          3 kB
          Kai Keggenhoff
        3. output2.pdf
          3 kB
          Kai Keggenhoff
        4. sample.xfdf
          2 kB
          Kai Keggenhoff

        Issue Links

          Activity

            People

              tilman Tilman Hausherr
              k.keggenhoff Kai Keggenhoff
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: