PDF/A error

PDF/A error: annotation has no appearance stream

Every annotation in a PDF/A file needs a normal appearance stream so its rendering does not depend on the viewer. How to add one.

An annotation in the document has no normal appearance stream, which means how it looks is left to the viewer to decide — exactly the environment dependency PDF/A forbids. Generate appearance streams for all annotations, or flatten them into the page content.

ISO 19005-1 clause 6.5Annotations

The Annotations check group covers 6.5.x annotation types and dictionaries. The exact sub-clause is reported on the issue itself when the validator raises it.

What causes it

  • Form fields created programmatically without generating appearances, a very common shortcut in PDF-generating libraries.
  • Comments, stamps or highlights added by a tool that relies on the reader to draw them.
  • A field value changed after export, invalidating an appearance that was previously present.

How to fix it

  1. Have the producing tool generate appearance streams — most form libraries have a "generate appearances" or "need appearances off" setting that does this.
  2. Flatten annotations into page content, which is the surest route when the interactivity is not needed in the archived copy.
  3. Convert the document, which generates the missing appearances where it can and reports the rest as residual.

Frequently asked

Which annotations need one?

All of them, other than the narrow set the standard exempts — notably Popup annotations and Link annotations, which have no visible appearance of their own to define.

Is flattening the same as deleting?

No. Flattening draws the annotation into the page content and removes the interactive object, so it still looks the same but is no longer editable. Deleting removes it from the page entirely.

Check your own document
The validator runs the same engine in your browser and names every failing check. The file is never uploaded.

Related failures

JavaScript or launch action
PDF/A forbids executable content — JavaScript, launch actions and other actions with side effects. What triggers this and how to remove it.