2017-07-20 42 views
1

私はpdfのサイズ230KBのテンプレートを持っています。私のWebAPIでは複数のユーザーのために、そのテンプレートのコピーをデータにプッシュし、iTextsharpライブラリを使用してマージします。 1500ユーザーの場合、合計ファイルサイズは最大320 MBに達しています。.Netのpdfサイズを小さくする

BitMiracleを使用してみましたが、ファイルサイズを160 MBに縮小しました。しかしそれはまだ大きなファイルです。

acrobat Proを使用し、Save as OtherオプションReduced Size PDFを使用した場合、ファイルサイズは25 MBに縮小されました。

C#を使用してWebAPIでファイルサイズを25MBに減らしたい場合は、後でサーバーでホストするようにしてください。

ユーザはそのPDFを編集する必要がないため、レコードとして保存します。ポストスクリプトファイルを生成してからacrobat distillerを使ってサイズを小さくすることはできますか?はいの場合、どうすればいいですか?

私はghostscript.Netを使用しています。このメソッドを書きましたが、エラーは発生していません。しかし、私は

public void convertToPs(string file) 
    { 
     try 
     { 
      Process printProcess = new Process(); 

      printProcess.StartInfo.FileName = file; 
      printProcess.StartInfo.Verb = "printto"; 
      printProcess.StartInfo.Arguments = "\"Ghostscript PDF\""; 
      printProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
      printProcess.StartInfo.CreateNoWindow = true; 
      printProcess.Start(); 

      // Wait until the PostScript file is created 
      try 
      { 
       printProcess.WaitForExit(); 
      } 
      catch (InvalidOperationException) { } 

      printProcess.Dispose(); 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 

+1

あなたは1500人のユーザーすべてが1つのPDFに書き込んでいますか? - 一つの解決策はそれをしないことです。 (オンデマンドでのみ生成) –

+0

実際にPDFにWebAPIコードを書き込んでいます。そのため1500個のコピーが生成され、出力として単一のPDFに統合されます – AkankshaGupta

+0

どのような種類のデータがpdfsにプッシュされていますか? – Ben

答えて

0

テンプレートが埋め込まれているんフォントを助けてください生成されたPostScriptファイルのパスを見つけることができないのですか?おそらく、マージはそれらのフォントを組み合わせません。埋め込みフォントが必要ない場合は、それらを削除することができます。アドビは、埋め込みフォントを組み合わせる際にいくつかの良い仕事をしています。

私が理解できるように、このような大きなpdfドキュメントを私に送ることができれば、なぜこのファイルが大きくなっているのですか。私はPDFライブラリの開発者であり、最小のPDFを取得することは私が取り組んでいる興味深い用途です。