Đâ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í!
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.
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#:
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;
}
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:
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:
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.