2017-11-15 6 views
0

WebページをPDFに変換するためにPhantomJSを使用しています。 開発環境でコードを実行すると、出力ファイルのサイズは数KBになりますが、AWS-Lambdaで同じコードを実行すると、出力ファイルのサイズは数MB程度になります。PhantomJS、生成されたPDFファイルのサイズは、aws-lambdaと比較してローカルで異なります

dev環境と同じサイズのpdfファイルを生成したいと思います。ここで

は、私はまた、ページの解像度

page.open(url, function start(status) { 
    window.setTimeout(function() { 
     page.dpi=72 
     page.render(file_name, {format: 'pdf'}); 
     system.stdout.write(file_name) 
     phantom.exit(); 
    }, 5000); 
}) 

を設定しようとしました

var system = require('system'); 
var page = require('webpage').create(); 

page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'; 

var url = system.args[1]; 
var file_name = system.args[2] 
var margin = system.args[3]; 

page.paperSize = { 
    format: 'A2', 
    orientation: 'portrait', 
    margin: JSON.parse(margin) 
}; 

page.evaluate(function() { 
    var style = document.createElement('style'); 
    style.innerHTML = '.card-padding{padding-top: 0;padding-bottom: 0;}'; 
    document.body.appendChild(style); 
}) 

page.open(url, function start(status) { 
    window.setTimeout(function() { 
     page.render(file_name, {format: 'pdf'}); 
     system.stdout.write(file_name) 
     phantom.exit(); 
    }, 5000); 
}); 

私は変換に使用していたコードですが、それは助けにはなりませんでした。 プロジェクトを見つけることができますhere

+0

正確なファイルの相違点を調べるには、ここから始めます。https://superuser.com/questions/46123/how-to-compare-the-differences-between-two-pdf-files-on- windows –

+0

私はubuntuでdiffpdfを使用しましたが、それは私と実行可能な情報を与えません。それはより大きいサイズのファイルのように見えます、フォントは少し小さいです。 – Fartash

答えて

0

ソリューションはです。

  • .fontsフォルダ
  • を作成するには.fontsフォルダにあなたがPDFで使用しているフォントを入れ
  • は、それが大幅にファイルサイズを小さくラムダHOME = /var/task

に的環境変数を追加します。

とは何ですか。

DebianとubuntuのPhantomJs v2.1.xは、少なくともローカルフォントを正しく処理します。つまり、pdfに埋め込まれているため、高品質で画面に表示され、テキストが検索可能であり、ファイルサイズが保持されます。低い。リモートWebフォントの場合、テキストはアウトラインに変換され、フォントは埋め込まれず、テキストは検索および選択できず、長いドキュメントの場合はファイルサイズが大きくなります。

関連する問題