1

Rails アプリで PDFJS を使用して PDF を読み込もうとしています。画像のみが読み込まれ、テキストはレンダリングされません。

コンソールには次のように表示されます。

Warning: Error during font loading: Maximum call stack size exceeded

奇妙なことに、localhost と Firefox で完全に動作します。localhost の任意のブラウザで動作します。エラーは本番サーバーでのみ発生します。

ここに私の設定があります。

アプリケーション.js

//= require compatibility
//= require pdf
//= require pdf_viewer
//= require simpleviewer

simpleviewer.js.erb

$(function(){

  'use strict';

  if (!PDFJS.PDFViewer || !PDFJS.getDocument) {
    alert('Please build the library and components using\n' +
          '  `node make generic components`');
  }

  PDFJS.workerSrc = "<%= asset_path('pdf.worker.js') %>";

  $('[data-type=pdf]').each(function(){
    var pdfUrl =$(this).attr('data-url');
    var container = $(this).find('#viewerContainer')[0];
    renderPdf(pdfUrl,container)
  })

  function renderPdf(pdfUrl, container){
    var pdfLinkService = new PDFJS.PDFLinkService();
    var pdfViewer = new PDFJS.PDFViewer({
      container: container,
      linkService: pdfLinkService,
    });
    pdfLinkService.setViewer(pdfViewer);

    container.addEventListener('pagesinit', function () {
      pdfViewer.currentScaleValue = 'page-width';
    });

    PDFJS.getDocument(pdfUrl).then(function (pdfDocument) {
      pdfViewer.setDocument(pdfDocument);
      pdfLinkService.setDocument(pdfDocument, null);
    });
  }
})

pdf_show.erb

<div class="pdf_show" data-type="pdf" data-url="#{pdf_url}">
  <div id="viewerContainer">
    <div id="viewer" class="pdfViewer">
    </div>
  </div>
</div>

どうもありがとう。

4

2 に答える 2