在文档加载时使用 PDF.JS 打印 base64 PDF
Printing base64 PDF using PDF.JS on document load
我正在尝试使用 PDF.js 打印 pdf,但目前我无法获取 pdf 元素中呈现的文档数据。这就是它现在的样子:
因此,没有数据被渲染。
这是背后的代码:
<script src="jquery-2.2.4.min.js"></script>
<script type="text/javascript" src="pdf.js"></script>
<script type="text/javascript" src="pdf.worker.js"></script>
<body id="printbody" style="margin:0px;">
</body>
<script type="text/javascript">
var pdfData = atob('JVBERi0xLjQK...'); //Shortened
PDFJS.workerSrc = 'pdf.worker.js';
PDFJS.getDocument({data: pdfData}).then(function RenderAndPrint(res) {
var src = URL.createObjectURL(new Blob([res], { type: 'application/pdf' }))
var printFrame = document.createElement('iframe');
printFrame.id = 'print-frame';
//printFrame.style.display = 'none';
printFrame.style.width = '100%'
printFrame.style.height = '100%'
printFrame.style.border = 'none'
printFrame.src = src;
document.body.appendChild(printFrame);
setTimeout(function () {
printFrame.contentWindow.print();
}, 0)
});
</script>
最终目标是通过 AJAX 将整个页面附加到现有页面,以便在附加此页面并呈现 PDF 后,将打印 iframe(将被隐藏) pdf一旦呈现然后最终自行处理。
我使用的是 itextsharp,而是将 pdf 保存到本地系统,将其设置为打开时打印,如下所示:
PdfAction print = new PdfAction(PdfAction.PRINTDIALOG);
writer.SetOpenAction(print);
然后使用 iframe 通过将文件设置为 src 来呈现 pdf
我正在尝试使用 PDF.js 打印 pdf,但目前我无法获取 pdf 元素中呈现的文档数据。这就是它现在的样子:
这是背后的代码:
<script src="jquery-2.2.4.min.js"></script>
<script type="text/javascript" src="pdf.js"></script>
<script type="text/javascript" src="pdf.worker.js"></script>
<body id="printbody" style="margin:0px;">
</body>
<script type="text/javascript">
var pdfData = atob('JVBERi0xLjQK...'); //Shortened
PDFJS.workerSrc = 'pdf.worker.js';
PDFJS.getDocument({data: pdfData}).then(function RenderAndPrint(res) {
var src = URL.createObjectURL(new Blob([res], { type: 'application/pdf' }))
var printFrame = document.createElement('iframe');
printFrame.id = 'print-frame';
//printFrame.style.display = 'none';
printFrame.style.width = '100%'
printFrame.style.height = '100%'
printFrame.style.border = 'none'
printFrame.src = src;
document.body.appendChild(printFrame);
setTimeout(function () {
printFrame.contentWindow.print();
}, 0)
});
</script>
最终目标是通过 AJAX 将整个页面附加到现有页面,以便在附加此页面并呈现 PDF 后,将打印 iframe(将被隐藏) pdf一旦呈现然后最终自行处理。
我使用的是 itextsharp,而是将 pdf 保存到本地系统,将其设置为打开时打印,如下所示:
PdfAction print = new PdfAction(PdfAction.PRINTDIALOG);
writer.SetOpenAction(print);
然后使用 iframe 通过将文件设置为 src 来呈现 pdf