Mã để nén PDF trong C#

Thư viện .NET hiệu suất cao để tối ưu hóa PDF nội dung và kích thước, giữ lại chất lượng ban đầu và dữ liệu cơ sở

Đây là một giải pháp chuyên nghiệp để nén PDF bằng C#, F#, VB.NET. Sử dụng PDF API tối ưu hóa của chúng tôi để phát triển phần mềm cấp cao, độc lập với nền tảng cho các nền tảng .NET và .NET Core. Hãy thử nó trực tuyến miễn phí!

Xem đoạn mã

Nén PDF bằng C#

Thư viện C# này cung cấp cho các nhà phát triển khả năng nén nhanh chóng và hiệu quả các PDF tài liệu theo chương trình. Dễ dàng có được đầu ra PDF được tối ưu hóa sẵn sàng để in, lưu trữ hoặc chia sẻ qua mạng. Đây là một giải pháp xử lý PDF tài liệu độc lập cho C# mà không yêu cầu cài đặt bất kỳ phần mềm bên thứ ba nào.

Giảm kích thước của PDF tệp bằng C#

Sản phẩm của chúng tôi cung cấp cho các nhà phát triển C# một API tích hợp để giảm kích thước PDF tệp. Nén PDF được thực hiện trong hai lần. Trong lần chuyển đầu tiên, tất cả các trang của PDF được chuyển đổi sang định dạng hình ảnh. Sản phẩm của chúng tôi sử dụng các thuật toán nén hình ảnh thích ứng và hiệu quả cao cho phép các nhà phát triển có được đầu ra PDF nhỏ gọn trong khi vẫn duy trì chất lượng tối ưu của tài liệu. Trong lần chuyển tiếp theo, chuỗi hình ảnh được nén và kết hợp để tạo thành nội dung của PDF tệp mới, được tối ưu hóa.

Nén PDF dễ dàng với 'Aspose.Words for .NET'. Ví dụ sau minh họa cách giảm kích thước của PDF tệp trong C#:

Ví dụ về mã trong C# để nén PDF tệp
Tải lên tệp bạn muốn tối ưu hóa / nén
Mã vận hành
Chọn định dạng mục tiêu từ danh sách
50%
dotnet add package Aspose.Words
Sao chép
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)
{
    // Đặt kích thước trang tối đa để tránh chia tỷ lệ hình ảnh trang hiện tạ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) { // Tùy nhà phát triển chọn thư viện để nén ảnh. using var image = Image.FromStream(shape.ImageData.ToStream()); // ... // Nén hình ảnh và đặt nó trở lại hình dạng. 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) { // Tùy nhà phát triển chọn thư viện để nén ảnh. using var image = Image.Fromstream(shape.ImageData.ToStream()); // ... // Nén hình ảnh và đặt nó trở lại hình dạng. 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) { // Tùy nhà phát triển chọn thư viện để nén ảnh. using var image = Image.FromStream(shape.ImageData.ToStream()); // ... // Nén hình ảnh và đặt nó trở lại hình dạng. 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) { // Đặt kích thước trang tối đa để tránh chia tỷ lệ hình ảnh trang hiện tạ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; }
Mã vận hành

Cách nén PDF

  1. Cài đặt Aspose.Words for .NET.
  2. Thêm tham chiếu thư viện (nhập thư viện) vào dự án C# của bạn.
  3. Mở PDF tệp nguồn trong C#.
  4. Nén PDF mà không làm giảm chất lượng.
  5. Gọi phương thức Document.Cleanup(). Mã kết quả có thể khác nhau tùy thuộc vào định dạng tệp đầu ra.
  6. Nhận kết quả nén dưới dạng PDF tệp.

C# thư viện để tối ưu hóa và nén PDF tệp

Có ba tùy chọn thay thế để cài đặt "Aspose.Words for .NET" vào hệ thống của bạn. Vui lòng chọn một cái giống với nhu cầu của bạn và làm theo hướng dẫn từng bước:

yêu cầu hệ thống

Sản phẩm của chúng tôi hoàn toàn đa nền tảng và hỗ trợ tất cả các triển khai .NET chính:

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

Vì mã .NET không phụ thuộc vào phần cứng hoặc hệ điều hành cơ bản mà chỉ phụ thuộc vào Máy ảo, bạn có thể tự do phát triển bất kỳ loại phần mềm nào cho Windows, macOS, Android, iOS và Linux. Chỉ cần đảm bảo rằng bạn đã cài đặt phiên bản tương ứng của .NET Framework, .NET Core, Windows Azure, Mono hoặc Xamarin.

Chúng tôi khuyên bạn nên sử dụng các môi trường phát triển tích hợp Microsoft Visual Studio, Xamarin và MonoDevelop để tạo các ứng dụng C#, F#, VB.NET.

Để biết thêm chi tiết, vui lòng tham khảo Tài liệu sản phẩm.

Các tối ưu hóa định dạng tệp được hỗ trợ khác

Bạn có thể tối ưu hóa tệp ở nhiều định dạng tệp khác:

5%

Đăng ký cập nhật sản phẩm của Aspose

Nhận bản tin hàng tháng và ưu đãi gửi trực tiếp đến hộp thư của bạn.

© Aspose Pty Ltd 2001-2024. Đã đăng ký Bản quyền.