我正在构建一个使用PDF.js加载和呈现pdf的页面,如下面的代码所示。
var url = '/path-to-pdf.js';
PDFJS.workerSrc = "./js/external/pdf.worker.js";
PDFJS.getDocument(url).then(function getPdfHelloWorld(pdf) {
var pageNumber = 1;
renderPage($(".center-info")[0], pdf, 1, function pageRenderingComplete() {
if (pageNumber > pdf.numPages) {
return; // All pages rendered
}
// Continue rendering of the next page
renderPage($("display-div")[0], pdf, ++pageNumber, pageRenderingComplete);
});
});
我想进行客户端下载,这意味着我必须直接访问原始PDF。这可以吗?
答案 0 :(得分:4)
我得到了答案。我们可以通过getData()方法访问数据。
PDFJS.getDocument(url).then(function getPdfHelloWorld(pdf) {
pdf.getData().then(function(arrayBuffer) {
var pdfraw = String.fromCharCode.apply(null, arrayBuffer);
// Operation your raw pdf here...
});
干杯
答案 1 :(得分:0)
async function extract(input) {
const pdf = await pdfJS.getDocument(input);
const elements = [];
for (let pageNumber = 1; pageNumber <= pdf.numPages; pageNumber++) {
const page = await pdf.getPage(pageNumber);
const textContent = await page.getTextContent({
normalizeWhitespace: true,
disableCombineTextItems: false,
});
textContent.items.forEach(item => {
elements.push(item);
});
}
return elements;
}