この C# ライブラリは、開発者に PDF ドキュメントをプログラムで迅速かつ効率的に圧縮する機能を提供します。最適化された PDF 出力を、ネットワーク上での印刷、アーカイブ、または共有の準備を簡単に行うことができます。これは、 C# 用のスタンドアロンの PDF ドキュメント処理ソリューションであり、サードパーティのソフトウェアをインストールする必要はありません。
当社の製品は、 C# 開発者に PDF ファイルのサイズを縮小するための統合APIを提供します。 PDF 圧縮は2つのパスで実行されます。最初のパスでは、PDF のすべてのページが画像形式に変換されます。当社の製品は、開発者がドキュメントの最適な品質を維持しながらコンパクトな PDF 出力を取得できるようにする、適応性のある非常に効率的な画像圧縮アルゴリズムを使用しています。次のパスでは、一連の画像が圧縮および結合されて、新しい最適化された PDF ファイルのコンテンツが形成されます。
'Aspose.Words for .NET' で PDF 圧縮が簡単になりました。次の例は、 C# で PDF ファイルのサイズを縮小する方法を示しています。
dotnet add package Aspose.Words
コピー
using Aspose.Words;
using Aspose.Words.Pdf2Word.FixedFormats;
using var pdfStream = File.OpenRead("Input.pdf");
var renderer = new PdfFixedRenderer();
var pdfReadOptions = new PdfFixedOptions
{
ImageFormat = FixedImageFormat.Jpeg,
JpegQuality = 50
};
const double maxPageDimension = 1584;
var pagesStream = renderer.SavePdfAsImages(pdfStream, pdfReadOptions);
var builder = new DocumentBuilder();
for (var i = 0; i < pagesStream.Count; ++i)
{
// 現在のページ画像のスケーリングを避けるために、最大ページ サイズを設定します。
var pageSetup = builder.PageSetup;
SetPageSize(pageSetup, maxPageDimension, maxPageDimension);
var pageImage = builder.InsertImage(pagesStream[i]);
SetPageSize(pageSetup, pageImage.Width, pageImage.Height);
pageSetup.TopMargin = 0;
pageSetup.LeftMargin = 0;
pageSetup.BottomMargin = 0;
pageSetup.RightMargin = 0;
if (i != pagesStream.Count - 1)
builder.InsertBreak(BreakType.SectionBreakNewPage);
}
var saveOptions = new PdfSaveOptions
{
CacheBackgroundGraphics = true
};
builder.Document.Save("Output.pdf", saveOptions);
private void SetPageSize(PageSetup pageSetup, double width, double height)
{
pageSetup.PageWidth = width;
pageSetup.PageHeight = height;
}
using Aspose.Words;
var doc = new Document("Input.pdf");
doc.Cleanup();
var nodes = doc.GetChildNodes(NodeType.Shape, true);
foreach (Shape shape in nodes)
{
if (shape.IsImage)
{
// 画像圧縮用のライブラリを選択するのは開発者次第です。
using var image = Image.FromStream(shape.ImageData.ToStream());
// ...
// 画像を圧縮して形状に戻します。
shape.ImageData.SetImage("yourCompressedImage");
}
}
var saveOptions = new PdfSaveOptions
{
CacheBackgroundGraphics = true
};
doc.Save("Output.pdf", saveOptions);
using Aspose.Words;
var doc = new Document("Input.pdf");
doc.Cleanup();
var nodes = doc.GetChildNodes(NodeType.Shape, true);
foreach (Shape shape in nodes)
{
if (shape.IsImage)
{
// 画像圧縮用のライブラリを選択するのは開発者次第です。
using var image = Image.Fromstream(shape.ImageData.ToStream());
// ...
// 画像を圧縮して、形状に戻します。
shape.ImageData.SetImage("yourCompressedImage");
}
}
doc.Save("Output.pdf");
using Aspose.Words;
var doc = new Document("Input.pdf");
doc.Cleanup();
var nodes = doc.GetChildNodes(NodeType.Shape, true);
foreach (Shape shape in nodes)
{
if (shape.IsImage)
{
// 画像圧縮用のライブラリを選択するのは開発者次第です。
using var image = Image.FromStream(shape.ImageData.ToStream());
// ...
// 画像を圧縮して、形状に戻します。
shape.ImageData.SetImage("yourCompressedImage");
}
}
var saveOptions = new OoxmlSaveOptions
{
CompressionLevel = CompressionLevel.Maximum
};
doc.Save("Output.pdf", saveOptions);
using Aspose.Words;
var doc = new Document();
var builder = new DocumentBuilder(doc);
var shape = builder.InsertImage("Input.pdf");
var saveOptions = new ImageSaveOptions(SaveFormat.Pdf)
{
};
shape.GetShapeRenderer().Save("Output.pdf", saveOptions);
using Aspose.Words;
using Aspose.Words.Pdf2Word.FixedFormats;
using var pdfStream = File.OpenRead("Input.pdf");
var renderer = new PdfFixedRenderer();
var pdfReadOptions = new PdfFixedOptions
{
ImageFormat = FixedImageFormat.Jpeg,
JpegQuality = 50
};
const double maxPageDimension = 1584;
var pagesStream = renderer.SavePdfAsImages(pdfStream, pdfReadOptions);
var builder = new DocumentBuilder();
for (var i = 0; i < pagesStream.Count; ++i)
{
// 現在のページ画像のスケーリングを避けるために、最大ページ サイズを設定します。
var pageSetup = builder.PageSetup;
SetPageSize(pageSetup, maxPageDimension, maxPageDimension);
var pageImage = builder.InsertImage(pagesStream[i]);
SetPageSize(pageSetup, pageImage.Width, pageImage.Height);
pageSetup.TopMargin = 0;
pageSetup.LeftMargin = 0;
pageSetup.BottomMargin = 0;
pageSetup.RightMargin = 0;
if (i != pagesStream.Count - 1)
builder.InsertBreak(BreakType.SectionBreakNewPage);
}
var saveOptions = new PdfSaveOptions
{
CacheBackgroundGraphics = true
};
builder.Document.Save("Output.pdf", saveOptions);
private void SetPageSize(PageSetup pageSetup, double width, double height)
{
pageSetup.PageWidth = width;
pageSetup.PageHeight = height;
}
インストールするための3つの代替オプションがあり "Aspose.Words ための .NET" ご使用のシステムには。ニーズに合ったものを選択し、ステップバイステップの手順に従ってください。
当社製品は完全にクロスプラットフォームであり、すべての主要な .NET 実装をサポートしています。
.NET コードが基盤となるハードウェアやオペレーティング システムに依存せず、仮想マシンのみに依存する限り、Windows、macOS、Android、iOS、Linux 向けのあらゆる種類のソフトウェアを自由に開発できます。.NET .NET Framework, .NET Core, Windows Azure, Mono 、またはXamarinの対応するバージョンがインストールされていることを確認してください。
C#, F#, VB.NETアプリケーションを作成するには、Microsoft Visual Studio、Xamarin、MonoDevelop 統合開発環境を使用することをお勧めします。
詳細については、 製品ドキュメントを参照してください。