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

Annotations parsed from XFDF containing ampersand characters are not properly imported



    • 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


      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


        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



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