Conformance in Flutter PDF

10 Jul 20262 minutes to read

The Syncfusion® Flutter PDF currently supports the following PDF conformances:

  • PDF/A-1b conformance
  • PDF/A-2b conformance
  • PDF/A-3b conformance

NOTE

To know more details about the PDF/A standard, refer to PDF/A standard

PDF/A-1b conformance

You can create a PDF/A-1b document by specifying the conformance level as a1b through PdfConformanceLevel enum when creating the new PDF document as follows.

//Creates a new document with the PDF/A-1b standard
PdfDocument document = PdfDocument(conformanceLevel: PdfConformanceLevel.a1b)
  ..pages.add().graphics.drawString('Hello World!',
      PdfTrueTypeFont(File('arial.ttf').readAsBytesSync(), 12),
      bounds: Rect.fromLTWH(20, 20, 200, 50));

//Saves the document
File('output.pdf').writeAsBytes(await document.save());

//Disposes the document
document.dispose();

PDF/A-2b conformance

You can create a PDF/A-2b document by specifying the conformance level as a2b through PdfConformanceLevel enum when creating the new PDF document as follows.

//Creates a new document with the PDF/A-2b standard
PdfDocument document = PdfDocument(conformanceLevel: PdfConformanceLevel.a2b)
  ..pages.add().graphics.drawString('Hello World!',
      PdfTrueTypeFont(File('arial.ttf').readAsBytesSync(), 12),
      bounds: Rect.fromLTWH(20, 20, 200, 50));

//Saves the document
File('output.pdf').writeAsBytes(await document.save());

//Disposes the document
document.dispose();

PDF/A-3b conformance

The PDF/A-3b conformance supports external files as attachments to the PDF document, so you can attach any document format such as Excel, Word, HTML, CAD, or XML files.

You can create a PDF/A-3b document by specifying the conformance level as a3b through PdfConformanceLevel enum when creating the new PDF document as follows.

//Creates a new document with the PDF/A-3b standard
PdfDocument document = PdfDocument(conformanceLevel: PdfConformanceLevel.a3b)
  ..pages.add().graphics.drawString('Hello World!',
      PdfTrueTypeFont(File('arial.ttf').readAsBytesSync(), 12),
      bounds: Rect.fromLTWH(20, 20, 200, 50));

//Creates an attachment
PdfAttachment attachment = PdfAttachment(
    'input.txt', File('input.txt').readAsBytesSync(),
    description: 'Input text', mimeType: 'text/plain')
  ..relationship = PdfAttachmentRelationship.alternative
  ..modificationDate = DateTime.now();

//Adds the attachment to the document
document.attachments.add(attachment);

//Saves the document
File('output.pdf').writeAsBytes(await document.save());

//Disposes the document
document.dispose();