PDF.js - 将 pdf 拆分为页面并重新构建多个文件
PDF.js - split pdf into pages and re-build multiple files
我目前正在做一个 Node.js 项目。所需的操作之一是阅读 pdf 文档的文本,然后将文档拆分为单独的文件。
因为我在这个项目中一直使用 pdf.js 进行所有其他 pdf 解析,所以我希望也能使用它来完成上述要求。
阅读 PDF 及其文本内容相对简单。
例如 -
function GetWords(pdfUrl){
var pdf = PDFJS.getDocument(pdfUrl);
return pdf.then(function(pdf) { // calculate total count for document
var maxPages = pdf.pdfInfo.numPages;
var countPromises = []; // collecting all page promises
for (var j = 1; j <= maxPages; j++) {
var page = pdf.getPage(j);
var txt = "";
countPromises.push(page.then(function(page) { // add page promise
var textContent = page.getTextContent();
return textContent.then
(
function(page)
{ // return content promise
for(var i=0;i<page.items.length;i++)
{
var txtadd = page.items[i].str
txt += txtadd.replace(/[^a-zA-Z0-9:;,.?!-() ]/g,'');
}
return txt.split(" ").length; // value for page words
});
}));
}
// Wait for all pages and sum counts
return Promise.all(countPromises).then(function (counts) {
var count = 0;
//counts.forEach(function (c) { count += c; });
return count;
});
});
}
但是,我似乎找不到任何从一个/或多个页面构建 PDF 的示例。理想情况下,我想使用 pdf.GetPage(j)
来获取所需页面的数组。然后将这些推入一个新文档并将这个新文档保存到磁盘。
如有任何帮助,我们将不胜感激。
我最终使用了一个单独的库来执行拆分。 http://pdfhummus.com/。所以结合 PDF.js 我能够得到想要的结果。
我目前正在做一个 Node.js 项目。所需的操作之一是阅读 pdf 文档的文本,然后将文档拆分为单独的文件。
因为我在这个项目中一直使用 pdf.js 进行所有其他 pdf 解析,所以我希望也能使用它来完成上述要求。
阅读 PDF 及其文本内容相对简单。
例如 -
function GetWords(pdfUrl){
var pdf = PDFJS.getDocument(pdfUrl);
return pdf.then(function(pdf) { // calculate total count for document
var maxPages = pdf.pdfInfo.numPages;
var countPromises = []; // collecting all page promises
for (var j = 1; j <= maxPages; j++) {
var page = pdf.getPage(j);
var txt = "";
countPromises.push(page.then(function(page) { // add page promise
var textContent = page.getTextContent();
return textContent.then
(
function(page)
{ // return content promise
for(var i=0;i<page.items.length;i++)
{
var txtadd = page.items[i].str
txt += txtadd.replace(/[^a-zA-Z0-9:;,.?!-() ]/g,'');
}
return txt.split(" ").length; // value for page words
});
}));
}
// Wait for all pages and sum counts
return Promise.all(countPromises).then(function (counts) {
var count = 0;
//counts.forEach(function (c) { count += c; });
return count;
});
});
}
但是,我似乎找不到任何从一个/或多个页面构建 PDF 的示例。理想情况下,我想使用 pdf.GetPage(j)
来获取所需页面的数组。然后将这些推入一个新文档并将这个新文档保存到磁盘。
如有任何帮助,我们将不胜感激。
我最终使用了一个单独的库来执行拆分。 http://pdfhummus.com/。所以结合 PDF.js 我能够得到想要的结果。