2017-02-15 6 views
1

私は以下のコードを使用してwebContentsビューをPDFファイルに保存しています。printToPDFはすべてのWebContentビューを表示しません

saveReport() { 
     const remote = require('electron').remote; 
     const webContents = remote.getCurrentWebContents(); 

     webContents.printToPDF({ 
      pageSize: 'A3', 
      landscape: false 
     }, (err, data) => { 
      remote.require('fs') 
       .writeFile(TEMP_URL, data); 
     }); 
    }, 

ビューはレポートであり、内部には実際に長いコンテンツがあります(下記参照)。

enter image description here

代わりに、完全なビューを示すのは、私はスクロールバー付き単一ページ内の部分図を参照してください。以下は、生成されたPDFのためのスクリーンショットは、

ただ、実際のブラウザのように振る舞い

期待

enter image description here

ある単一のページには十分なスペースを提供しない場合、生成されたPDFは、すべてのビューが含まれている必要があり、複数のページを生成する必要があります。

私はおそらく何か私のCSSに間違っていると思っています。

答えて

1

私の現在のプロジェクトと同様の要件がありました。このapiを使用すると、印刷するように設定されたメディアクエリを使用してCSSファイルをメインHTMLに追加することで、PDFをレンダリングする方法をカスタマイズできますmedia="print"

このCSSスタイルシートは、何かを印刷したり、apiメソッドprintToPdf()でpdfに書き出した場合にのみ適用されます。

光子やブートストラップなどのuiキットを使用している場合は、それを無効にして、役立つかどうか確認してください。

最後のヒント:page-break-before: always;

が、これは

を役に立てば幸いCSSプロパティを使用しよう
関連する問題