Watermarks in Flutter PDF

14 Dec 20242 minutes to read

The Syncfusion® Flutter PDF provides support for adding watermarks to a PDF document using PdfGraphics.

Adding text watermark to a PDF document

The Syncfusion® Flutter PDF allows you draw the text watermark to the PDF document using graphics elements.

The following code example explains how to draw the text watermark to the PDF document.

  • DART
  • //Create a new PDF document
    PdfDocument document = PdfDocument();
    
    //Add a page to the document and get page graphics
    PdfGraphics graphics = document.pages.add().graphics;
    
    //Watermark text
    PdfGraphicsState state = graphics.save();
    
    //Set transparency and rotation 
    graphics.setTransparency(0.25);
    
    graphics.rotateTransform(-40);
    
    //Add text watermark 
    graphics.drawString('Imported using Essential PDF',
        PdfStandardFont(PdfFontFamily.helvetica, 20),
        pen: PdfPens.red,
        brush: PdfBrushes.red,
        bounds: Rect.fromLTWH(-150, 450, 0, 0));
    
    //Restore graphics state
    graphics.restore(state);
    
    //Save and dispose the PDF document
    File('SampleOutput.pdf').writeAsBytes(await document.save());
    document.dispose();

    Adding image watermark to a PDF document

    To add the image watermark to a PDF document, you can draw the image with transparency in PdfGraphics.

    The following code example explains how to draw an image watermark to the PDF document.

  • DART
  • //Create a new PDF document
    PdfDocument document = PdfDocument();
    
    //Add a page to the document and get page graphics
    PdfGraphics graphics = document.pages.add().graphics;
    
    //Get image data
    File imageFile = File('image.jpg'); 
    Uint8List imagebytes = await imageFile.readAsBytes();
    String imageBase64 = base64.encode(imagebytes);
    
    //Watermark image
    PdfGraphicsState state = graphics.save();
    graphics.setTransparency(0.25);
    graphics.drawImage(
        PdfBitmap.fromBase64String(imageBase64),
        Rect.fromLTWH(
            0, 0, graphics.clientSize.width, graphics.clientSize.height));
    graphics.restore(state);
    
    //Save and dispose the PDF document
    File('SampleOutput.pdf').writeAsBytes(await document.save());
    document.dispose();