@react-pdf/pdfkit
Advanced tools
Comparing version 1.6.0 to 2.0.0
{ | ||
"name": "@react-pdf/pdfkit", | ||
"version": "1.6.0", | ||
"version": "2.0.0", | ||
"description": "A PDF generation library for Node.js", | ||
"main": "dist/pdfkit.cjs.js", | ||
"module": "dist/pdfkit.es.js", | ||
"main": "lib/pdfkit.cjs.js", | ||
"module": "lib/pdfkit.es.js", | ||
"browser": { | ||
"./dist/pdfkit.es.js": "./dist/pdfkit.browser.es.js", | ||
"./dist/pdfkit.cjs.js": "./dist/pdfkit.browser.cjs.js" | ||
"./lib/pdfkit.es.js": "./lib/pdfkit.browser.es.js", | ||
"./lib/pdfkit.cjs.js": "./lib/pdfkit.browser.cjs.js" | ||
}, | ||
@@ -17,9 +17,7 @@ "author": { | ||
"scripts": { | ||
"build": "rollup -c", | ||
"prepublish": "npm run build", | ||
"prebuild": "node ./src/font/data/compressData.js", | ||
"postbuild": "rimraf ./src/font/data/*.b64.afm" | ||
"build": "rimraf ./lib && rimraf ./src/font/data/*.b64.afm && node ./src/font/data/compressData.js && rollup -c ", | ||
"watch": "rimraf ./lib && rimraf ./src/font/data/*.b64.afm && node ./src/font/data/compressData.js && rollup -c -w" | ||
}, | ||
"files": [ | ||
"dist" | ||
"lib" | ||
], | ||
@@ -32,17 +30,6 @@ "dependencies": { | ||
"devDependencies": { | ||
"babel-plugin-external-helpers": "^6.22.0", | ||
"babel-preset-es2015": "^6.24.1", | ||
"blob-stream": "^0.1.2", | ||
"iconv-lite": "^0.4.13", | ||
"rimraf": "^2.6.2", | ||
"rollup": "^0.52.2", | ||
"rollup-plugin-babel": "^2.7.1", | ||
"rollup-plugin-bundle-size": "https://github.com/vimeo/rollup-plugin-bundle-size", | ||
"rollup-plugin-ignore": "^1.0.3", | ||
"rollup-plugin-json": "^2.1.0", | ||
"rollup-plugin-node-resolve": "^2.0.0", | ||
"rollup-plugin-replace": "^1.1.1", | ||
"rollup-plugin-string": "^2.0.2", | ||
"rollup-plugin-uglify": "^3.0.0" | ||
} | ||
"iconv-lite": "^0.4.13" | ||
}, | ||
"gitHead": "94243722ca1acdb8a5d80f51d00dcb63ce84e6d9" | ||
} |
124
README.md
@@ -1,12 +0,18 @@ | ||
# PDFKit | ||
<p align="center"> | ||
<img src="https://user-images.githubusercontent.com/5600341/27505816-c8bc37aa-587f-11e7-9a86-08a2d081a8b9.png" height="280px"> | ||
</p> | ||
# @react-pdf/pdfkit | ||
A JavaScript PDF generation library for Node and the browser. | ||
[![](https://img.shields.io/gratipay/devongovett.svg)](https://gratipay.com/devongovett) | ||
## Acknowledges | ||
This project is a fork of [pdfkit](https://github.com/foliojs/pdfkit) by @devongovett and continued under the scope of this project since it has react-pdf specific features. Any recongnition should go to him and the original project mantainers. | ||
## Description | ||
PDFKit is a PDF document generation library for Node and the browser that makes creating complex, multi-page, printable documents easy. | ||
It's written in CoffeeScript, but you can choose to use the API in plain 'ol JavaScript if you like. The API embraces | ||
chainability, and includes both low level functions as well as abstractions for higher level functionality. The PDFKit API | ||
PDFKit is a PDF document generation library for Node and the browser that makes creating complex, multi-page, printable documents easy. | ||
It's written in CoffeeScript, but you can choose to use the API in plain 'ol JavaScript if you like. The API embraces | ||
chainability, and includes both low level functions as well as abstractions for higher level functionality. The PDFKit API | ||
is designed to be simple, so generating complex documents is often as simple as a few function calls. | ||
@@ -25,3 +31,3 @@ | ||
npm install pdfkit | ||
npm install @react-pdf/pdfkit | ||
@@ -52,3 +58,3 @@ ## Features | ||
* etc. | ||
## Coming soon! | ||
@@ -62,107 +68,3 @@ | ||
* Even more awesomeness, perhaps written by you! Please fork this repository and send me pull requests. | ||
## Example | ||
```coffeescript | ||
PDFDocument = require 'pdfkit' | ||
# Create a document | ||
doc = new PDFDocument | ||
# Pipe its output somewhere, like to a file or HTTP response | ||
# See below for browser usage | ||
doc.pipe fs.createWriteStream('output.pdf') | ||
# Embed a font, set the font size, and render some text | ||
doc.font('fonts/PalatinoBold.ttf') | ||
.fontSize(25) | ||
.text('Some text with an embedded font!', 100, 100) | ||
# Add an image, constrain it to a given size, and center it vertically and horizontally | ||
doc.image('path/to/image.png', { | ||
fit: [250, 300], | ||
align: 'center', | ||
valign: 'center' | ||
}); | ||
# Add another page | ||
doc.addPage() | ||
.fontSize(25) | ||
.text('Here is some vector graphics...', 100, 100) | ||
# Draw a triangle | ||
doc.save() | ||
.moveTo(100, 150) | ||
.lineTo(100, 250) | ||
.lineTo(200, 250) | ||
.fill("#FF3300") | ||
# Apply some transforms and render an SVG path with the 'even-odd' fill rule | ||
doc.scale(0.6) | ||
.translate(470, -380) | ||
.path('M 250,75 L 323,301 131,161 369,161 177,301 z') | ||
.fill('red', 'even-odd') | ||
.restore() | ||
# Add some text with annotations | ||
doc.addPage() | ||
.fillColor("blue") | ||
.text('Here is a link!', 100, 100) | ||
.underline(100, 100, 160, 27, color: "#0000FF") | ||
.link(100, 100, 160, 27, 'http://google.com/') | ||
# Finalize PDF file | ||
doc.end() | ||
``` | ||
[The PDF output from this example](http://pdfkit.org/demo/out.pdf) (with a few additions) shows the power of PDFKit — producing | ||
complex documents with a very small amount of code. For more, see the `demo` folder and the | ||
[PDFKit programming guide](http://pdfkit.org/docs/getting_started.html). | ||
## Browser Usage | ||
There are two ways to use PDFKit in the browser. The first is to use [Browserify](http://browserify.org/), | ||
which is a Node module packager for the browser with the familiar `require` syntax. The second is to use | ||
a prebuilt version of PDFKit, which you can [download from Github](https://github.com/devongovett/pdfkit/releases). | ||
In addition to PDFKit, you'll need somewhere to stream the output to. HTML5 has a | ||
[Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) object which can be used to store binary data, and | ||
get URLs to this data in order to display PDF output inside an iframe, or upload to a server, etc. In order to | ||
get a Blob from the output of PDFKit, you can use the [blob-stream](https://github.com/devongovett/blob-stream) | ||
module. | ||
The following example uses Browserify to load `PDFKit` and `blob-stream`, but if you're not using Browserify, | ||
you can load them in whatever way you'd like (e.g. script tags). | ||
```coffeescript | ||
# require dependencies | ||
PDFDocument = require 'pdfkit' | ||
blobStream = require 'blob-stream' | ||
# create a document the same way as above | ||
doc = new PDFDocument | ||
# pipe the document to a blob | ||
stream = doc.pipe(blobStream()) | ||
# add your content to the document here, as usual | ||
# get a blob when you're done | ||
doc.end() | ||
stream.on 'finish', -> | ||
# get a blob you can do whatever you like with | ||
blob = stream.toBlob('application/pdf') | ||
# or get a blob URL for display in the browser | ||
url = stream.toBlobURL('application/pdf') | ||
iframe.src = url | ||
``` | ||
You can see an interactive in-browser demo of PDFKit [here](http://pdfkit.org/demo/browser.html). | ||
Note that in order to Browserify a project using PDFKit, you need to install the `brfs` module with npm, | ||
which is used to load built-in font data into the package. It is listed as a `devDependency` in | ||
PDFKit's `package.json`, so it isn't installed by default for Node users. | ||
If you forget to install it, Browserify will print an error message. | ||
## Documentation | ||
@@ -169,0 +71,0 @@ |
Obfuscated code
Supply chain riskObfuscated files are intentionally packed to hide their behavior. This could be a sign of malware
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Obfuscated code
Supply chain riskObfuscated files are intentionally packed to hide their behavior. This could be a sign of malware
Found 2 instances in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
2
3
83
1974017
19245
74
1