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

Annotations parsed from XFDF containing ampersand characters are not properly imported

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.3, 2.0.4, 2.0.5, 2.0.6
    • Fix Version/s: 2.0.13, 3.0.0 PDFBox
    • Component/s: AcroForm, PDModel
    • Labels:
    • Environment:
      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. output1.pdf
          3 kB
          Kai Keggenhoff
        2. output2.pdf
          3 kB
          Kai Keggenhoff
        3. sample.xfdf
          2 kB
          Kai Keggenhoff
        4. MergeTest.java
          4 kB
          Kai Keggenhoff

          Issue Links

            Activity

              People

              • Assignee:
                tilman Tilman Hausherr
                Reporter:
                k.keggenhoff Kai Keggenhoff
              • Votes:
                1 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: