如何从pdf.js获取原始数据

时间:2014-08-03 05:13:16

标签: javascript pdf pdf.js

我正在构建一个使用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。这可以吗?

2 个答案:

答案 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;
}