Practical Applications and Considerations of PDF.js

Dec 02, 2025 · Programming · 12 views · 7.8

Keywords: PDF.js | Browser PDF Creation | PDF Embedding Rendering

Abstract: This article introduces how to use PDF.js to embed and render PDF documents in web pages, as well as create PDF files in the browser. Based on the best answer, it explains code structure, common issues, and project status, providing practical implementation steps.

Basic Concepts and Application Scenarios of PDF.js

PDF.js is an open-source tool that allows embedding and rendering PDF documents in web pages. It is primarily maintained by Mozilla and widely used for online document viewing, learning systems, and various web applications. Unlike traditional PDF browser plugins, PDF.js is implemented in JavaScript, making it usable across multiple platforms and offering better performance and customization capabilities.

Creating PDF Files in the Browser

According to the best answer, PDF.js can be used to generate PDF files in the browser. Here is a basic example code:

/* create the PDF document */
var doc = new pdf();
doc.text(20, 20, 'hello, I am PDF.');
doc.text(20, 30, 'i was created in the browser using javascript.');
doc.text(20, 40, 'i can also be created from node.js');

/* Optional - set properties on the document */
doc.setProperties({
  title: 'A sample document created by pdf.js',
  subject: 'PDFs are kinda cool, i guess',        
  author: 'Marak Squires',
  keywords: 'pdf.js, javascript, Marak, Marak Squires',
  creator: 'pdf.js'
});

doc.addPage();
doc.setFontSize(22);
doc.text(20, 20, 'This is a title');
doc.setFontSize(16); 
doc.text(20, 30, 'This is some normal sized text underneath.');

var fileName = "testFile"+new Date().getSeconds()+".pdf";
var pdfAsDataURI = doc.output('datauri', {"fileName":fileName});

This code first creates a new PDF object, then uses the text method to add text content. The setProperties method sets document metadata such as title and author. The addPage method adds a new page, while setFontSize adjusts font size. Finally, the output method converts the PDF to Data URI format for saving or displaying in the browser.

Embedding and Rendering PDF Documents

In addition to creating PDF files, PDF.js can also embed and render existing PDF documents in web pages. Based on supplementary answers, here is a more complete example:

pdfjsLib.GlobalWorkerOptions.workerSrc = '/js/pdf.worker.js';

pdfjsLib.getDocument('helloworld.pdf')
    .promise
    .then(pdf => {
      pdf.getPage(1).then(page => {
        let outputScale = window.devicePixelRatio || 1;
        let transform = outputScale !== 1 ? [outputScale, 0, 0, outputScale, 0, 0] : null;
        let scale = 1.5;
        let viewport = page.getViewport({scale});

        let canvas = document.getElementById('the-canvas');
        let context = canvas.getContext('2d');

        canvas.width = Math.floor(viewport.width * outputScale);
        canvas.height = Math.floor(viewport.height * outputScale);
        canvas.style.width = Math.floor(viewport.width) + 'px';
        canvas.style.height =  Math.floor(viewport.height) + 'px';

        let renderContext = {
          canvasContext: context,
          transform,
          viewport,
        };

        page.render(renderContext);
      });
    })
    .catch(console.error);

This code first sets the workerSrc property to specify the path of the PDF.js worker thread. Then, it uses the getDocument method to load the PDF document, handling asynchronous operations through Promises. After obtaining the page, it sets the viewport and Canvas dimensions, and finally calls the render method to render the PDF content onto the Canvas. This approach is suitable for scenarios requiring high-performance rendering, such as large documents or real-time previews.

Common Issues and Considerations

When using PDF.js, the following points should be noted:

Conclusion

PDF.js is a powerful tool that can both create PDF files in the browser and embed and render existing PDF documents. By properly using its APIs and addressing common issues, efficient and secure PDF processing can be achieved. For developers needing to integrate PDF functionality into web applications, PDF.js is an excellent choice.

Copyright Notice: All rights in this article are reserved by the operators of DevGex. Reasonable sharing and citation are welcome; any reproduction, excerpting, or re-publication without prior permission is prohibited.