javascript - 在新标签页中创建和打开 PDF

标签 javascript angular jspdf html2canvas

在我的应用程序中,我有一个使用 html2canvas 和 jsPDF 创建 pdf 的按钮。 我希望在新标签页中打开新下载的 pdf。我不知道如何打开新下载的文件。

这甚至可以做到吗?

这是我的代码。

print() {
        const fileName = String(new Date().valueOf());
        const element: HTMLElement = document.querySelector('.print-area');
        const regionCanvas = element.getBoundingClientRect();
        html2canvas(element, { scale: 3 }).then(async canvas => {
            const pdf = new jsPDF('p', 'mm', 'a4');
            pdf.addImage(canvas.toDataURL('image/png'), 'PNG', 3, 0, 205, (205 / regionCanvas.width) * regionCanvas.height);
            await pdf.save(fileName, { returnPromise: true });

            const a = document.createElement('a');
            a.href = fileName;
            // this points to non existing file
            document.body.appendChild(a);
        });
    }

最佳答案

我找到了一种下载和打开文件的方法。 您基本上必须调用两个函数:

pdf.save(fileName);
window.open(pdf.output('bloburl', { filename: fileName }), '_blank');

所以最后的代码是这样的:

print() {
        const fileName = String(new Date().valueOf());
        const element: HTMLElement = document.querySelector('.print-area');
        const regionCanvas = element.getBoundingClientRect();
        html2canvas(element, { scale: 3 }).then(async canvas => {
            const pdf = new jsPDF('p', 'mm', 'a4');
            pdf.addImage(canvas.toDataURL('image/png'), 'PNG', 3, 0, 205, (205 / regionCanvas.width) * regionCanvas.height);
            await pdf.save(fileName, { returnPromise: true });
            window.open(pdf.output('bloburl', { filename: fileName }), '_blank');
        });
    }

关于javascript - 在新标签页中创建和打开 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56568162/

相关文章:

javascript - 使用 jQuery,四舍五入和 commify 匹配元素的最佳方式?

Angular 部署 - 页面刷新 404

angular - 如何检测 Angular 中的死代码或未使用的代码?

javascript - HTML图像到javascript中的pdf转换器

javascript - jsPDF 输出空白文档

javascript - 如何确定在javascript中已经过去了多少分钟

javascript - jQuery.noConflict();对于用户脚本

javascript - Angular 2 : Show placeholder image if img src is not valid

typescript - Jasmine 中的 "provide"关键字,Angular2 RC.4 升级 - "Deprecated symbol used"

javascript - jspdf默认 'a4'格式的像素宽度和长度是多少?