Skip to content

[Web] Signature appearance on page.Annots not visible in SfPdfViewer (pdf.js annotationMode=DISABLE) #2556

Description

Bug description

On Flutter Web, SfPdfViewer does not show a signature stamp that is clearly present when the same PDF is downloaded and opened in Chrome’s native PDF viewer (or Preview / Adobe).

Sample file (attached):
Alliances - Mobbiz - Partnership Agreement - Indra_15JUNE2026v.254 (1).pdf

  • Page 5 – Devops Outsourcing Inc.: handwritten ink signature is visible in SfPdfViewer (drawn into page content).
  • Page 5 – Indra Philippines Inc.: digital-style stamp (“Digitally signed by Diego Antonio P. Castillejo…”) is missing in SfPdfViewer, but visible after Download → open in Chrome.

This is related in theme to #2506, but our case is Web, and upgrading the Syncfusion package alone did not restore the Indra stamp in the built-in preview.

PDF structure (from inspection of the attached file):

  • Page 5 has a /Subtype /Widget + /FT /Sig annotation named Signature2 with an /AP appearance stream that contains the “Digitally signed by…” text.
  • AcroForm.Fields is empty; there is no /V cryptographic signature dictionary on that widget (Apple Preview / Quartz-style appearance).
  • Producer: macOS Quartz PDFContext; Creator: Microsoft Word.

Why it fails with current Syncfusion Web path:

  • syncfusion_pdfviewer_web renders via pdf.js with annotationMode = 0 (DISABLE) → Annot appearances are not painted.
  • _renderDigitalSignatures() only flattens fields in document.form.fields when signature != null → this Annot-only stamp is never flattened into page content.

Expected Behavior

  • SfPdfViewer on Web should show the Indra signature appearance on page 5 the same way Chrome does when opening the attached PDF.

Alliances - Mobbiz - Partnership Agreement - Indra_15JUNE2026v.254 (1).pdf

Actual Behavior

  • In-app preview: Indra stamp area blank; Devops ink signature still shows.
  • Download → Chrome: both signatures / stamp visible.

Steps to reproduce

  1. Create a Flutter Web app with syncfusion_flutter_pdfviewer 32.2.9 (and required pdf.js setup in web/index.html).
  2. Load the attached PDF with SfPdfViewer.memory (or .file).
  3. Go to page 5.
  4. Observe Indra block has no digital stamp.
  5. Open the same file in Chrome’s PDF viewer → stamp is present.

Code sample

@override Widget build(BuildContext context) { return Scaffold( body: SfPdfViewer.memory( pdfBytes, // attached partnership agreement PDF onDocumentLoadFailed: (PdfDocumentLoadFailedDetails details) { print('Load Failed: ${details.description}'); }, ), ); }

Workaround Used
Temporary local override of syncfusion_pdfviewer_web: set pdf.js annotationMode from 0 to 1 (ENABLE) in the page/tile render settings. With that change, the Indra stamp appears in preview. We consider this temporary until Syncfusion provides an official fix/API.

`// syncfusion_pdfviewer_web – render settings
..annotationMode = 1; // stock package uses 0 (DISABLE)

Alliances - Mobbiz - Partnership Agreement - Indra_15JUNE2026v.254 (1).pdf

`

Screenshots or Video

BAD:

Image

GOOD:

Alliances - Mobbiz - Partnership Agreement - Indra_15JUNE2026v.254 (1).pdf

Stack Traces

No stack trace — silent visual rendering issue, not a crash. See description above.

On which target platforms have you observed this bug?

Web

Flutter Doctor output

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.44.8, on macOS 15.6 24G84 darwin-arm64, locale en)
[✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 26.3)
[✓] Chrome - develop for the web
[✓] Connected device (4 available)
[✓] Network resources

• No issues found!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions