pdf-parse
By autokent
polyfill
Set of all Javascript polyfills [Moved to: https://github.com/behnammodi/polyfill] (by uxitten)
SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
surveyjs.io
featured
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.
pdf-parse
Posts with mentions or reviews of pdf-parse.
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
pdf-parse is a popular parsing package among developers for its user-friendly interface. Its stability stems from its independence from other parser frameworks, which contributes to fewer bugs.
-
Case study: PDF Insights with AWS Textract and OpenAI integration
The first issue we faced was getting the text contents from a PDF file. While extracting text directly from PDF, using open source tools like pdf-parse (which is used internally by langchain’s pdf-loader) did the job most of the time, we still had some issues with it: some PDFs were not parsed correctly and the tool returned empty string (like in the case of Uber sample pitchdeck ), we’ve just got some words split into individual characters and so on.
- How would you write a pdf merging program without any packages or anything from basic
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)); } });