pdf2json
converts binary PDF to JSON and text, for server-side PDF processing and command-line use. (by modesty)
polyfill
Set of all Javascript polyfills [Moved to: https://github.com/behnammodi/polyfill] (by uxitten)
pdf2json | polyfill | |
---|---|---|
1 | 1 | |
1,892 | 144 | |
- | - | |
6.4 | - | |
5 days ago | about 2 years ago | |
Java | JavaScript | |
GNU General Public License v3.0 or later | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
pdf2json
Posts with mentions or reviews of pdf2json.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2024-03-12.
-
Parsing PDFs in Node.js
{ Transcoder: '[email protected] [https://github.com/modesty/pdf2json]', Meta: { PDFFormatVersion: '1.6', IsAcroFormPresent: false, IsXFAPresent: false, Author: 'Mary', Creator: 'Acrobat PDFMaker 9.0 for Word', Producer: 'Adobe PDF Library 9.0', CreationDate: "D:20110123144232-05'00'", ModDate: "D:20140304212414-05'00'", Metadata: { 'xmp:modifydate': '2014-03-04T21:24:14-05:00', 'xmp:createdate': '2011-01-23T14:42:32-05:00', 'xmp:metadatadate': '2014-03-04T21:24:14-05:00', 'xmp:creatortool': 'Acrobat PDFMaker 9.0 for Word', 'xmpmm:documentid': 'uuid:4a18570c-d5bf-445d-9e0e-2efeb989eeb1', 'xmpmm:instanceid': 'uuid:813474a4-22b0-4180-9415-bb67674d2b7b', 'xmpmm:subject': '3', 'dc:format': 'application/pdf', 'dc:creator': 'Mary', 'pdf:producer': 'Adobe PDF Library 9.0', 'pdfx:sourcemodified': 'D:20110123172633' } }, Pages: [ { Width: 38.25, Height: 49.5, HLines: [], VLines: [], Fills: [Array], Texts: [Array], Fields: [], Boxsets: [] } ] }
polyfill
Posts with mentions or reviews of polyfill.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2024-03-12.
-
Parsing PDFs in Node.js
import { PdfReader, TableParser } from "pdfreader"; const filename = "./uploads/table.pdf"; const nbCols = 2; const cellPadding = 40; const columnQuantitizer = (item) => parseFloat(item.x) >= 20; // polyfill for String.prototype.padEnd() // https://github.com/uxitten/polyfill/blob/master/string.polyfill.js // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat if (!String.prototype.padEnd) { String.prototype.padEnd = function padEnd(targetLength, padString) { targetLength = targetLength >> 0; //floor if number or convert non-number to 0; padString = String(padString || " "); if (this.length > targetLength) { return String(this); } else { targetLength = targetLength - this.length; if (targetLength > padString.length) { padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed } return String(this) + padString.slice(0, targetLength); } }; } const padColumns = (array, nb) => Array.apply(null, { length: nb }).map((val, i) => array[i] || []); const mergeCells = (cells) => (cells || []).map((cell) => cell.text).join(""); const formatMergedCell = (mergedCell) => mergedCell.substr(0, cellPadding).padEnd(cellPadding, " "); const renderMatrix = (matrix) => (matrix || []) .map( (row, y) => "| " + padColumns(row, nbCols) .map(mergeCells) .map(formatMergedCell) .join(" | ") + " |" ) .join("\n"); var table = new TableParser(); new PdfReader().parseFileItems(filename, function (err, item) { if (err) console.error(err); else if (!item || item.page) { // end of file, or page console.log(renderMatrix(table.getMatrix())); item?.page && console.log("PAGE:", item.page); table = new TableParser(); // new/clear table for next page } else if (item.text) { // accumulate text items into rows object, per line table.processItem(item, columnQuantitizer(item)); } });
What are some alternatives?
When comparing pdf2json and polyfill you can also consider the following projects:
pdf-parse