// 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 // IsInternetExplorer8OrLower parameter indicates if we use IE8 or lower so we CAN'T use images (as it requires HTML5 Canvas available in IE9 or higher). Other browsers should be working fine // IMPORTANT ABOUT IMAGES: // When using Firefox or IE, pdf generation may fail because images are not accessible when pdf generation works // the solution for this issue is to preload images in main HTML document before running PDF generation // to preload images, put them into hidden div block "pdfreportimages" - you can see it in the sample.html right after opening tag function CreatePDF(IsInternetExplorer8OrLower) { // 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 pdf.pageSetSize(BytescoutPDF.A4); // set page orientation (BytescoutPDF.PORTRAIT = portrait, BytescoutPDF.LANDSCAPE = landscape) pdf.pageSetOrientation(BytescoutPDF.PORTRAIT); // add new page pdf.pageAdd(); if (!IsInternetExplorer8OrLower) // images and drawings from canvas are supported on IE version 9 and higher, other modern browsers should work fine { // 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 = "#EEEEEE"; // and fill the background with white color context.fillRect(0, 0, 320, 240); // draw the yellow circle context.strokeStyle = "#000000"; context.fillStyle = "#FFFF00"; context.beginPath(); context.arc(100, 100, 50, 0, Math.PI * 2, true); context.closePath(); context.stroke(); context.fill(); // load image from canvas into BytescoutPDF pdf.imageLoadFromCanvas(canvas); // place this mage at given X, Y coordinates on the page pdf.imagePlace(20, 40); // place this mage at given coordinates and dimesionson on the page pdf.imagePlaceSetSize(20, 170, 0, 80, 60); } // return BytescoutPDF object instance return pdf; }