Electron で jsPDF を使用する

アンター・バード

Electron アプリケーションで pdf ドキュメントを作成しようとしています。ユーザーが JSON ファイルを選択すると、それを解析して新しい PDF ドキュメントを作成します。ドキュメントを作成しようとするとエラーが発生します。

エラー

Uncaught Error: Type of text must be string or Array. "undefined" is not recognized.
    at Object.H.text (/Users/antarrbyrd/dev/pathway_exporter/bower_components/jspdf/dist/jspdf.min.js:1)
    at HTMLInputElement.<anonymous> (index.html:48)
    at HTMLInputElement.dispatch (/Users/antarrbyrd/dev/pathway_exporter/lib/jquery.min.js:3)
    at HTMLInputElement.q.handle (/Users/antarrbyrd/dev/pathway_exporter/lib/jquery.min.js:3) 

index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <link href="./bower_components/photon/dist/css/photon.min.css" rel="stylesheet" type="text/css" />
    <title>Seremedi - Pathway Exporter</title>
  </head>
  <body>
    <div class="window">
      <header class="toolbar toolbar-header">
        <div class="btn-group">
          <button class="btn btn-large btn-default" id="open-button">
            <span class="icon icon-folder"></span>
          </button>
          <button class="active btn btn-large btn-default">
            <span class="icon icon-download"></span>
          </button>
          <button class="active btn btn-large btn-default">
            <span class="icon icon-print"></span>
          </button>
        </div>
        <input type="file" id="file-input" style="display: none;"></input>
      </header>
      <div class="window-content">
        <webview id="webview" autosize style="display:inline-flex; width:100%; height:100%"></webview>
      </div>
      <footer class="toolbar toolbar-footer">
        <h1 class="title">&copy; Seremedi - 2017</h1>
      </footer>
    </div>
  </body>
  <script>
    $ = require('jquery')
    jsPDF = require('jspdf')
    PDFDocument = require('pdfkit')

    $('#open-button').on('click',function(evt){
      evt.preventDefault();
      $('#file-input').click();
    });
    $('#file-input').on('change',function(evt){
      var location = $('#file-input')[0].files[0].path;
      source = "";
      $('#webview').prop('src', location);
      $.getJSON(location, function(json){
        source = json;
        console.log(source);
      });
      var doc = new jsPDF();
      doc.text(source.ReferenceId, 10, 10);
      doc.save('file.pdf');
    });
  </script>
</html>
ロイヤルビンボン

Javascript は非同期です。jsPDF 行は、$.getJSON()終了する前に実行されます。その時点でsourceは、ただの空文字列です。したがってsource.ReferenceId、未定義です。

$.getJSON(location, function(json){
    source = json;
    var doc = new jsPDF();
    doc.text(source.ReferenceId, 10, 10);
    doc.save('file.pdf');
});

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

BackbonejsでjsPDFを使用する

分類Dev

jsPDFとjspdf-autotableをAngular5で使用する方法

分類Dev

Angular 2でjsPDFを使用する方法

分類Dev

Angular 2でjsPDFを使用する方法

分類Dev

Electronでmysqlを使用する

分類Dev

jsPDfでのZapfdingbatsの使用

分類Dev

jspdfを使用してDivボーダーでPDFを作成する

分類Dev

ElectronでReact Routerを使用する方法

分類Dev

ElectronアプリでFoundationを使用する

分類Dev

Angular 4でjspdf-autotableを使用する方法は?

分類Dev

Typescript-Angular2でjsPDFを正しく使用する方法は?

分類Dev

jsPDF出力ファイルが空です

分類Dev

モーダルでjsPDFを開く方法

分類Dev

ajax と Django python で JsPDF を使用して PDF 添付メールを送信する

分類Dev

角度2+でjsPDFを使用してPDFを生成する際のDOMException

分類Dev

Electronで<webview>と通信する

分類Dev

ElectronでMatDialogRefを閉じる

分類Dev

jspdfとVue.jsでPDFを生成する

分類Dev

jsPDFで大きな画像を保存する方法は?

分類Dev

jspdf-autoTableでlastAutoTableのfinalYを取得する方法

分類Dev

jspdfで線の色を変更するには?

分類Dev

jsPDFで垂直方向の高さを計算する方法は?

分類Dev

GUIなしでElectronを実行する

分類Dev

ElectronでNativeImageを表示する方法

分類Dev

Electronを使用してHTMLでJQueryをインポートする

分類Dev

Angular10でjsPDFを使用できません

分類Dev

ElectronでのQLPreviewPanelの使用

分類Dev

Electronでpreload.jsを適切に使用する方法

分類Dev

Electronアプリでconsole.log()を使用する

Related 関連記事

ホットタグ

アーカイブ