Hướng dẫn chrome pdf viewer print javascript - chrome pdf xem print javascript

Tôi đã phải làm điều tương tự và tôi đã sử dụng một cách tiếp cận khác, một cách mà tôi làm việc trong cả Chrome và Firefox.

Giải pháp của tôi liên quan đến một tệp trợ giúp in.html, đã nhận được URL của tệp PDF dưới dạng tham số GET TYPE, sau đó tải PDF bên trong iframe. Sau đó, nó tiếp tục kiểm tra xem PDF có được tải hoàn toàn không (ràng buộc kiểm tra sự kiện onload không hoạt động) và khi hoàn thành, nó đã kích hoạt phương thức in.

Here:




    
    

    Print Page

     

    





Giải pháp này không được kiểm tra trên IE mặc dù. Chúng tôi sử dụng máy Mac tại nơi làm việc vì vậy nó không phải là một lựa chọn.

Để thực hiện in, tôi sử dụng nó bằng cách gọi một url như thế này: http://example.com/print.html?path=docs/myfile.pdf

Đính kèm (được đề xuất) hoặc liên kết đến tệp PDF tại đây:

Configuration:

  • Trình duyệt web và phiên bản của nó: Google Chrome mới nhất
  • Hệ điều hành và phiên bản của nó: Android mới nhất
  • Phiên bản pdf.js: 2.2.171
  • Là một phần mở rộng trình duyệt: Không

Các bước để tái tạo vấn đề:

  1. Xem PDF lớn (hơn 25 trang)
  2. Nhấp vào nút in
  3. Xem trước và in ra đôi khi trống

Giải pháp cho vấn đề là sau đây (mở các cửa sổ riêng biệt với nội dung in cho Android)

 performPrint: function performPrint() {
    var _this2 = this;

    this.throwIfInactive();
    return new Promise(function (resolve) {
      setTimeout(function () {
        if (!_this2.active) {
          resolve();
          return;
        }
        var printhtml = document.getElementById('printContainer');
        
        if (_this2.isPopPrintEnable && printhtml != null) {

          let popupWin = window.open("", "_blank", "top=0,left=0,height=0,width=auto");
          popupWin.document.open();
          popupWin.document.write(`
                  
                    
                    
                    
                    
                      

Please tap on the screen go back to application.

${printhtml.innerHTML}
`); popupWin.document.close(); if (activeService) { activeService.destroy(); dispatchEvent('afterprint'); } } else { print.call(window); setTimeout(resolve, 1000); } }, 0); }); },