How to Add Image From Canvas When Generating PDF in JavaScript - ByteScout

How to Add Image From Canvas When Generating PDF in JavaScript

  • Home
  • /
  • Articles
  • /
  • How to Add Image From Canvas When Generating PDF in JavaScript

This sample demonstrates how to add image from canvas during PDF generation in JavaScript with BytescoutPDF.js (Bytescout PDF Generator for JavaScript).

// function that creates BytescoutPDF instance (defined in BytescoutPDF.js script which have to be included into the same page)
// then calls API methods and properties to create PDF document
// and returns created BytescoutPDF object instance
// this CreatePDF() function is called from Sample.html

function CreatePDF() {

    // create BytescoutPDF object instance
    var pdf = new BytescoutPDF();

    // set document properties: Title, subject, keywords, author name and creator name
    pdf.propertiesSet("Sample document title", "Sample subject", "keyword1, keyword 2, keyword3", "Document Author Name", "Document Creator Name");

    // set page size

    // set page orientation (BytescoutPDF.PORTRAIT = portrait, BytescoutPDF.LANDSCAPE = landscape)

    // add new page

    // create temporary canvas (you can also simply get existing canvas)
    var canvas = document.createElement('canvas');
    // set width and height
    canvas.width = 320;
    canvas.height = 240;

    // get context from canvas (to draw on)
    var context = canvas.getContext("2d");

    // set white background color
    context.fillStyle = "#FFFFFF";
    // and fill the background with white color
    context.fillRect(0, 0, 320, 240);

    // draw the yellow circle
    context.strokeStyle = "#000000";
    context.fillStyle = "#FFFF00";
    context.arc(100, 100, 50, 0, Math.PI * 2, true);

    // load image from canvas into BytescoutPDF

    // place this image at given X, Y coordinates on the page
    pdf.imagePlace(20, 40);

    // return BytescoutPDF object instance
    return pdf;

Generated PDF file with image from canvas (click to view full size):

Click to view full size