More languages
Some test text!
More languages
Sample JavaScript code to use Apryse SDK for programmatically inserting various raster image formats (e.g. TIFF, JPEG, JPEG2000, JBIG2, GIF, PNG, BMP, etc.) into a PDF document. Learn more about our JavaScript PDF Library and PDF Editing & Manipulation Library.
Get Started Samples DownloadTo run this sample, get started with a free trial of Apryse SDK.
JavaScript
HTML
//---------------------------------------------------------------------------------------
// Copyright (c) 2001-2023 by Apryse Software Inc. All Rights Reserved.
// Consult legal.txt regarding legal and license information.
//---------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------
// Copyright (c) 2001-2023 by Apryse Software Inc. All Rights Reserved.
// Consult legal.txt regarding legal and license information.
//---------------------------------------------------------------------------------------
(exports => {
exports.runAddImageTest = () => {
const PDFNet = exports.Core.PDFNet;
const main = async () => {
try {
// Relative path to the folder containing test files.
const inputURL = '../TestFiles/';
const doc = await PDFNet.PDFDoc.create();
doc.initSecurityHandler();
doc.lock();
const builder = await PDFNet.ElementBuilder.create(); // ElementBuilder, used to build new element Objects
// create a new page writer that allows us to add/change page elements
const writer = await PDFNet.ElementWriter.create(); // ElementWriter, used to write elements to the page
// define new page dimensions
const pageRect = await PDFNet.Rect.init(0, 0, 612, 794);
let page = await doc.pageCreate(pageRect);
writer.beginOnPage(page, PDFNet.ElementWriter.WriteMode.e_overlay);
// Adding a JPEG image to output file
let img = await PDFNet.Image.createFromURL(doc, inputURL + 'peppers.jpg');
let matrix = await PDFNet.Matrix2D.create(200, 0, 0, 250, 50, 500);
const matrix2 = await PDFNet.Matrix2D.createZeroMatrix();
await matrix2.set(200, 0, 0, 250, 50, 500);
let element = await builder.createImageFromMatrix(img, matrix2);
writer.writePlacedElement(element);
// Add a PNG to output file
img = await PDFNet.Image.createFromURL(doc, inputURL + 'butterfly.png');
matrix = await PDFNet.Matrix2D.create(await img.getImageWidth(), 0, 0, await img.getImageHeight(), 300, 500);
element = await builder.createImageFromMatrix(img, matrix);
writer.writePlacedElement(element);
// Add a GIF image to the output file
img = await PDFNet.Image.createFromURL(doc, inputURL + 'pdfnet.gif');
matrix = await PDFNet.Matrix2D.create(await img.getImageWidth(), 0, 0, await img.getImageHeight(), 50, 350);
element = await builder.createImageFromMatrix(img, matrix);
writer.writePlacedElement(element);
// Add a TIFF image to the output file
img = await PDFNet.Image.createFromURL(doc, inputURL + 'grayscale.tif');
matrix = await PDFNet.Matrix2D.create(await img.getImageWidth(), 0, 0, await img.getImageHeight(), 10, 50);
element = await builder.createImageFromMatrix(img, matrix);
writer.writePlacedElement(element);
writer.end();
doc.pagePushBack(page);
// Embed monochrome TIFF compressed using lossy JBIG2 filter
page = await doc.pageCreate(pageRect);
writer.beginOnPage(page, 1, true, true);
const hintSet = await PDFNet.ObjSet.create();
const enc = await hintSet.createArray();
await enc.pushBackName('JBIG2');
await enc.pushBackName('Lossy');
img = await PDFNet.Image.createFromURL(doc, inputURL + 'multipage.tif', enc);
matrix = await PDFNet.Matrix2D.create(612, 0, 0, 794, 0, 0);
element = await builder.createImageFromMatrix(img, matrix);
writer.writePlacedElement(element);
writer.end();
doc.pagePushBack(page);
// Add a JPEG200 to output file
page = await doc.pageCreate(pageRect);
writer.beginOnPage(page, 1, true, true);
img = await PDFNet.Image.createFromURL(doc, inputURL + 'palm.jp2');
matrix = await PDFNet.Matrix2D.create(await img.getImageWidth(), 0, 0, await img.getImageHeight(), 96, 80);
element = await builder.createImageFromMatrix(img, matrix);
writer.writePlacedElement(element);
// write 'JPEG2000 Sample' text under image
const timesFont = await PDFNet.Font.create(doc, PDFNet.Font.StandardType1Font.e_times_roman);
writer.writeElement(await builder.createTextBeginWithFont(timesFont, 32));
element = await builder.createTextRun('JPEG2000 Sample', timesFont, 32);
matrix = await PDFNet.Matrix2D.create(1, 0, 0, 1, 190, 30);
element.setTextMatrix(matrix); // await?
writer.writeElement(element);
const element2 = await builder.createTextEnd();
writer.writeElement(element2);
writer.end();
doc.pagePushBack(page); // add the page to the document
const docbuf = await doc.saveMemoryBuffer(PDFNet.SDFDoc.SaveOptions.e_linearized);
exports.saveBufferAsPDFDoc(docbuf, 'addimage.pdf');
console.log('Done. Result saved in addimage.pdf...');
} catch (err) {
console.log(err);
}
};
// add your own license key as the second parameter, e.g. PDFNet.runWithCleanup(main, 'YOUR_LICENSE_KEY')
PDFNet.runWithCleanup(main);
};
})(window);
// eslint-disable-next-line spaced-comment
//# sourceURL=AddImageTest.js