PDFsharpを利用しているPDF印刷プロセッサーで作業中です& MigraDoc。私は2,000から10,000ページを含む、結合されたPDFを生成しています。このプログラムから生成されたPDFを印刷している印刷ベンダーは、すべての埋め込みフォントのためにファイルサイズとPDFの処理にかかる時間について不平を言っています。私はAdobe Acrobat Reader DCの埋め込みフォントを見て、完全に埋め込まれたフォントとサブセットがたくさんあることがわかります。C#.NET - PDFsharpとMigraDoc - あらゆる場所に埋め込まれたフォント - 大規模なファイルサイズ
文書全体で2つのフォントしか使用されていませんが、すべてのページのすべての要素にPDFの2つのフォントが埋め込まれているようです。つまり、ページに10個の要素があり、10,000ページある場合、それは20,000個の埋め込みフォントセットです。
私が最初に見たのは、PDFsharpで使用されているフォントオプション& MigraDocでした。フォントの埋め込みのオプションがあります。
var renderer = new PdfDocumentRenderer(true, PdfFontEmbedding.None);
var options = new XPdfFontOptions(PdfFontEmbedding.None);
using (var gfx = XGraphics.FromPdfPage(currentPage))//currentPage is of type PdfPage
{
gfx.MFEH = PdfFontEmbedding.None;
...
もともとこれら埋め込むオプションがPdfFontEmbedding.Always
に設定されますが、私は問題が解決されることを期待して.None
にそれらを変更しました。そうではありませんでした。実際、何も変わっていません。同じ量のフォントが埋め込まれていて、同じサイズでした。
印刷業者が私に電話し、PDFを取り込んでポストスクリプトに変換してからPDFに戻し、ファイルサイズを3分の2に減らし、フォント埋め込みがすべて無くなったことを知らせました。
postscript(基本的には何もない)について私が知っていることは、ファイルが何らかの種類のベクター形式なのでフォントが埋め込まれていないと仮定し、テキストを選択できなくなりました。私はこれがクライアントまたはベンダーのための問題ではないと思います。彼らは、生成されたPDFをポストスクリプトファイルに変換してからPDFに戻すという考えに満足していたようです。
私はC#でこれらの変換を行う可能性のある方法を研究していますが、実際にはそれほど多くは見つかりませんでした。私はGhostscriptやGhostscript.Netの使い方についていくつか見てきました。それらのドキュメントはかなり欠けており、私は良い例は見ていません。
これらの変換を行う良い方法を知っている人はいませんか?PDFsharpおよび/またはMigraDocを使用して、フォントが埋め込まれないようにするか、この問題の別の良い解決方法を知っていますか?
ありがとうございました。それは素晴らしい仕事をした。私の大きなPDFファイルの1GBから18MBへと変わった。クライアントはとても満足しています。 – shaneOverby