我正在使用React开发一个响应式Web应用程序,并试图在IOS中开发打印PDF而不用视觉打开它。 (就像window.print()中的行为一样。)
我尝试使用iframe嵌入PDF,并使用contentWindow.print()进行打印。但是,此方法只能打印一页,而不能打印IOS Safari中的所有页面。
我也尝试了嵌入和对象,但发现了相同的结果。
这是我讨厌的代码:
onPrintHandler(){
console.log("OnPrint");
var arr = this.state.base64Pdf.split(',')
var binary = atob(arr[1]);
var len = binary.length;
var buffer = new ArrayBuffer(len);
var view = new Uint8Array(buffer);
for (var i = 0; i < len; i++) {
view[i] = binary.charCodeAt(i);
}
console.log('view',view)
// create the blob object with content-type "application/pdf"
var blob1 = new Blob( [view], { type: "application/pdf" });
console.log('blob1',blob1);
var url = window.URL.createObjectURL(blob1);
var iframe = this._printIframe;
if (!this._printIframe) {
iframe = this._printIframe = document.createElement('iframe');
document.body.appendChild(iframe);
iframe.style.display = 'none';
iframe.onload = function() {
setTimeout(function() {
iframe.contentWindow.focus();
iframe.contentWindow.print();
}, 3000);
};
}
iframe.src = url;
}
请问在IOS Safari中打印所有页面PDF的解决方案?
有什么建议吗?
谢谢
利昂