2016-08-03 10 views
1

何らかの理由で、Google Apps ScriptでHTMLファイルをPDFに変換すると、PDFのファイルサイズが元のHTMLよりも大きくなりますファイル。Google Appsスクリプトを使用してhtmlファイルをadobe pdfに変換するとファイルサイズが増加する

私は、テストを実行するために使用されるコードは以下の通りです:

function convertHTMLtoPDF() { 
// convert a specific message with an attached HTML file to PDF, 
// and save it to the root directory of Google Drive 
    var threads = GmailApp.search('subject:(Sample HTML)'); 
    var message = threads[0].getMessages()[0]; 

    var attachmentName = message.getAttachments()[0].getName(); 

    var attachment = message.getAttachments()[0].getAs("application/pdf"); 
    DriveApp.createFile(attachment).setName(attachmentName); 

} 

注:あなたは、私は以下の共有だサンプルHTMLファイルを取る件名のメールに添付する必要があります:サンプルHTMLスクリプトがそれを見つけることを可能にするためにそれを自分に送ります。

私が変換していたsample HTMLファイルは133 KBです。変換後のは、スクリプトの実行後に10 MBです。次のように

私のテスト結果は以下のとおりです。Google Appsのスクリプトを使用したsample.htmlファイルを変換

  • は133キロバイトのHTMLファイルは、10メガバイトのPDFになるようにします。
  • Adob​​e Acrobat XI Proでsample.htmlファイルを変換すると、133 KBのHTMLファイルが151 KBのPDFになります。

Google Apps Scriptで変換されたPDFのファイルサイズがAdobeで変換したときのサイズよりも大きい理由は誰にも分かりますか?ファイルサイズを減らす方法はありますか?

ありがとうございました!

+0

変換の結果をGoogle Apps Scriptで確認したい場合は、サンプルのPDFファイルはhttps://drive.google.com/file/d/0B7LEHSedHuTxLUlKRnlWQ05sZWs/view?usp=sharing – user3330539

答えて

0

あなたのコードを試したところ、サイズが大きくなったことを確認しました(10 MB)。 PDFファイルは元のファイルタイプに比べて常に大きいので、これは自然なことだと思います。あなたはそれを説明することができるインターネット上の多くの理由を見つけることができます。 1つの例はthisです。

これを確認するために、私はこのscriptを使用してサイズを確認しました。

function htmlToPDF() { 

    var html = "YOUR HTML CODE"; 

    var blob = Utilities.newBlob(html, "text/html", "text.html"); 
    var pdf = blob.getAs("application/pdf"); 

    DriveApp.createFile(pdf).setName("text.pdf"); 

    MailApp.sendEmail("[email protected]", "PDF File", "", 
    {htmlBody: html, attachments: pdf}); 

} 

また、このコードから10MBのサイズが得られます。

+0

です。なぜなら、PDFファイルは元のファイルタイプと比較して常に大きいからです。 PDFはflate/deflate圧縮を使用でき、実際には.txtファイルに保持されている同じテキストよりも何倍も小さいことがあります。 – enhzflep

+0

私はこれがGoogle Apps Scriptのバグだと思います。なぜなら、Apps Scriptを使用して変換するとファイルサイズがそれほど大きくならない理由がないからです。他の誰かがこれを修正する方法を知っていますか?これはGoogleにこのバグを提出する必要がありますか? – user3330539

+0

バグレポートをGoogleに提出した場合、提出したバグチケットにリンクしてください。 – KENdi

関連する問題