3

ASP.NET アプリケーション (C#) から高解像度 PDF ファイルを低解像度 PDF ファイルに変換する方法を探しています。ユーザーが高解像度 PDF をインポートすると、ソリューションは高解像度 PDF と低解像度 PDF の両方を提供できるようになるはずです。そのためのAPIを探しています。多くの PDF API を見つけましたが、探しているものを実行しているようには見えません。

4

3 に答える 3

1

ABCpdf .NET がこれを行います。PDF ドキュメント内の画像のサイズ変更、再サンプリング、または再圧縮のためのさまざまな機能があります。ただし、要件を考えると、ドキュメントのサイズ縮小操作を使用したいだけかもしれません。

これを行うには、次の形式のコードが必要です。

Doc doc = new Doc();
doc.Read(Server.MapPath("../mypics/sample.pdf"));
using (ReduceSizeOperation op = new ReduceSizeOperation(doc)) {
op.UnembedSimpleFonts = false; // though of course making these true...
op.UnembedComplexFonts = false; // ... would further reduce file size.
op.MonochromeImageDpi = 72;
op.GrayImageDpi = 72;
op.ColorImageDpi = 144;
op.Compact(true);
}
doc.Save(Server.MapPath("ReduceSizeOperation.pdf"));

私は ABCpdf .NET ソフトウェア コンポーネントに取り組んでいるので、返信には ABCpdf に基づく概念が含まれている可能性があります。それは私が知っていることです。:-)

于 2013-06-03T11:02:30.453 に答える
0

この問題にはいくつかの方法が考えられますが、そのうちの 1 つは、InDesign から 2 回エクスポートすることです (これにより、必要な 2 つのバージョンの PDF を作成できます)。それが不可能な場合 (InDesign からのエクスポートには少し時間がかかる可能性があるため、そうではない可能性があります)、あなたがやりたいことを実行できるライブラリが間違いなく市場に出回っています。ここにいくつかのアプローチがあります:

1) これはほとんどのアドビの従業員に私を撃たせるでしょうが、PDF ファイルをより小さなファイルに再蒸留することができます。私はこれを行うことを主張しませ。完全であることを述べています。関連するリスクは、品質の低下、アーティファクトなどを導入することです (ほとんどの場合、PostScript は PDF がサポートする多くの機能をサポートしておらず、再蒸留するとそれらの機能が失われるためです)。

2) このタスク用に作成されたアプリケーションまたはライブラリを使用します。たとえば、callas pdfToolbox (警告、私はこの会社と提携しています!) は、PDF ファイルを取得して修正を実行することができます。これらの修正には、画像のダウンサンプリング、RGB への変換、画像の再圧縮 (JPEG-2000 などを使用)、PDF 内の不要なデータの破棄などがあります。アプリケーションにコマンドライン インターフェイスがある場合、ac# プロセスに簡単に統合できます。同様の機能を持つ他のアプリケーションは、Enfocus、Apago などの企業から提供されます。

3) 低レベルの PDF ライブラリ (Adobe から DataLogics を通じてライセンス供与できる Adob​​e PDF ライブラリなど) を使用し、必要な変更を自分で実装します。作業は増えますが、より柔軟になる可能性があります。

どのアプローチを選択する場合でも、高品質の PDF ファイルから開始していること、およびプロセスがその品質をできるだけ維持するように努める必要があることを理解しておいてください (もちろん、低解像度の PDF ファイルに対して使用しているアプリケーションによって異なります)。適切なオーバープリントや透明度などを失うことによって問題が発生しないようにしてください...

于 2013-06-02T17:24:49.803 に答える