npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

pdf-lib-builder

v3.3.2

Published

A builder based on pdf-lib

Downloads

192

Readme

pdf-lib-builder

This is an automatic page creation library for pdf-lib. It is thought to be an alternative to pdfkit for users that actually had to use both of the libraries (like me 😅).

Example

Please look at the example folder for a fully working example with a simple node server.

Usage

To start you simply create an instance of the document builder class and wrap the doc inside:

// First create a PDFDocument like you would usually do.
const doc = await PDFDocument.create()

// Now create a PDFDocumentBuilder instance and wrap the doc inside.
const builder = new PDFDocumentBuilder(doc)

Next you can use some functions to build up your document.

For easier layouting the library changes the origin on all functions from bottom left to top left.

Create a text

builder.text('Hello world.')

It automatically goes to the next line when writing a text. You can pass the default pdf-lib-options to the text function.

Create an image

To create an image pass an already embedded image (either embedJpg or embedPng). Additional to the default options you can pass a fit option, which automatically fits the image in the given box.

builder.image(image)

Render HTML (preview)

This package supports experimental HTML rendering using the document builder methods. Basically it always renders the text contained in the html. Additionally it currently supports rendering

  • Paragraphs
  • Headers
  • Images
  • Lists (ordered and unordered)
  • strong-Tags (bold)
  • em-Tags (italic)
  • a tags for links
  • Colors in style attribute

If a tag is not supported yet, it is just ignored by the library.

To render html, simply run the following async method:

await builder.html(`<h1>This is a header</h1>`)

Moving

builder.moveDown(1)

You can pass the amount of lines to move down. This is calculated by the current font size.