C#中壓縮PDF的代碼

用於優化PDF內容和大小的高性能.NET庫,保留原始質量和基線數據

這是使用C#, F#, VB.NET壓縮PDF的專業解決方案。使用我們的PDF優化 API 為.NET和.NET Core平台開發獨立於平台的高級軟件。免費在線試用!

查看代碼片段

在 C# 中壓縮 PDF

這個 C# 庫為開發人員提供了以編程方式快速有效地壓縮 PDF 文檔的能力。輕鬆獲得優化的 PDF 輸出,以便通過網絡進行打印、存檔或共享。它是一個用於 C# 的獨立 PDF 文檔處理解決方案,不需要安裝任何第三方軟件。

使用 C# 減小 PDF 的大小

我們的產品為 C# 開發人員提供了一個集成的 API,以減小 PDF 文件的大小。 PDF 壓縮分兩次執行。在第一遍中,PDF 的所有頁面都轉換為圖像格式。我們的產品使用自適應和高效的圖像壓縮算法,使開發人員能夠獲得緊湊的 PDF 輸出,同時保持文檔的最佳質量。在下一輪中,圖像序列被壓縮並組合成一個新的、優化的 PDF 文件的內容。

'Aspose.Words for .NET' 使 PDF 壓縮變得容易。以下示例演示如何在 C# 中減小 PDF 文件的大小:

C#中用於壓縮PDF文件的代碼示例
上傳要優化/壓縮的文件
運行代碼
從列表中選擇目標格式
50%
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; }
運行代碼

如何壓縮PDF

  1. 安裝Aspose.Words for .NET 。
  2. 將庫引用(導入庫)添加到您的C#項目。
  3. 在C#中打開源PDF文件。
  4. 在不損失質量的情況下壓縮PDF 。
  5. 調用Document.Cleanup()方法。結果代碼可能因輸出文件格式而異。
  6. 將壓縮結果作為PDF文件獲取。

C#庫用於優化和壓縮PDF個文件

在您的系統上 "Aspose.Words for .NET" 有三個備選選項。請選擇符合您需求的一種,並按照分步說明進行操作:

系統需求

我們的產品完全跨平台,支援所有主要的 .NET 實作:

  • .NET ≥ 5.0
  • .NET Core ≥ 2.0
  • .NET Standard ≥ 2.0
  • .NET Framework ≥ 3.5
  • MonoMac
  • MonoAndroid
  • Xamarin

由於 .NET 程式碼不依賴底層硬體或作業系統,而僅依賴虛擬機,因此您可以自由地為 Windows、macOS、Android、iOS 和 Linux 開發任何類型的軟體。只要確保您已安裝對應版本的.NET Framework, .NET Core, Windows Azure, Mono或Xamarin即可。

我們建議使用 Microsoft Visual Studio、Xamarin 和 MonoDevelop 整合開發環境來建立C#, F#, VB.NET應用程式。

更多詳細資訊請參閱產品文件

其他支持的文件格式優化

您可以優化許多其他文件格式的文件:

5%

訂閱 Aspose 產品更新

獲取直接發送到您的郵箱的每月通訊和優惠。

© Aspose Pty Ltd 2001-2024. 版權所有。