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

jspdf-customfonts

v0.0.4-rc.4

Published

Add Custom fonts support to jsPDF

Downloads

3,376

Readme

jsPDF-CustomFonts-support

Build Status License: MIT

JsPDF is an open source that loads JavaScript in an HTML5 environment and creates a pdf document.

The current version does not support Custom Fonts. I will try to implement this feature.

Demo

It's on the GitHub Pages.

Current Version

Version 0.0.4

jsPDF libary

I do not claim to be the author of the jsPDF library, this code simply adds preliminary custom fonts support.

Version History

0.0.1 Initial proof of concept

0.0.2 Support multiline text

0.0.3 Refactor multiline text

0.0.4 Make into a plugin

Install

Download and include jspdf.customfonts.min.js.

You can also get the plugin with a package manager:

  • npm install jspdf-customfonts

Getting Started

This document will walk you through the basics of jsPDF and will show you how to create PDF files in the browser.

To begin with the default configuration, you should include 3 files:

  • https://unpkg.com/jspdf@latest/dist/jspdf.min.js,
  • dist/jspdf.customfonts.min.js,
  • dist/default_vfs.js - default vfs font definition (it contains 1 Font)
    • however you can use custom fonts according to the following detailed instructions :
      1. Run npm install
      2. Copy your fonts into the fonts subdirectory.
      3. Run node makeFonts.js to create a new dist/default_vfs.js.
      4. Include your new dist/default_vfs.js file in your code.
<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <title>jsPDF customfonts example</title>
    <script src="https://unpkg.com/jspdf@latest/dist/jspdf.min.js"></script>
    <script src="dist/jspdf.customfonts.min.js"></script>
    <script src="dist/default_vfs.js"></script>
</head>
<body>
...

addFileToVFS Method

doc.addFileToVFS(fileName, Base64content);

addFont Method

doc.addFont(fileName, fontName, fontStyle);

Example Code

var doc = new jsPDF();

doc.addFont('NotoSansCJKjp-Regular.ttf', 'NotoSansCJKjp', 'normal');

doc.setFont('NotoSansCJKjp');
doc.text(15, 30, 'こんにちは。はじめまして。');

//multi-lines Test
var paragraph = '相次いで廃止された寝台列車に代わり、いまや夜間の移動手段として主力になりつつある夜行バス。「安い」「寝ながら移動できる」などのメリットを生かすため、運行ダイヤはどのように組まれているのでしょうか。夜遅く出て、朝早く着くというメリット夜行バスを使うメリットといえば、各種アンケートでもいちばん多い回答の「安い」以外に、';
var lines = doc.splitTextToSize(paragraph, 150);
doc.text(15, 60, lines);

doc.save('custom_fonts.pdf');

License

MIT