Làm việc với hình ảnh trong PDF C#

Một bưc tranh đang gia ngan lơi noi. Do đó, hình ảnh và đồ họa đóng một vai trò quan trọng trong PDF cũng như các tài liệu khác. Vì PDF đã trở thành một trong những định dạng tệp phổ biến và được sử dụng rộng rãi nhất, nên bài viết này nhắm đến cách xử lý hình ảnh trong tệp PDF theo chương trình. Chính xác hơn, bạn sẽ học cách thêm, trích xuất, xóa và thay thế hình ảnh từ tệp PDF trong C# .NET.

API C# để Thêm, Xóa và Thay thế Hình ảnh trong PDF - Tải xuống Miễn phí

Aspose.PDF for .NET là thư viện lớp C# cho phép bạn tạo và thao tác các tài liệu PDF từ bên trong các ứng dụng .NET. Sử dụng API, bạn có thể thực hiện các tính năng tự động hóa PDF cơ bản cũng như nâng cao khá dễ dàng. Ngoài ra, bạn có thể thao tác với hình ảnh trong các tệp PDF hiện có. Có thể tải xuống API dưới dạng DLL hoặc cài đặt qua NuGet.

PM> Install-Package Aspose.Pdf

Thêm hình ảnh trong tệp PDF trong C# .NET

Sau đây là các bước để thêm hình ảnh vào tệp PDF bằng Aspose.PDF for .NET.

  • Sử dụng lớp Tài liệu để tạo mới hoặc tải tệp PDF hiện có.
  • Nhận tham chiếu của trang mong muốn trong đối tượng Trang.
  • Thêm hình ảnh vào bộ sưu tập Tài nguyên của trang.
  • Sử dụng các toán tử sau để đặt hình ảnh trên trang:
    • GSave operator to save the current graphical state.
    • ConcatenateMatrix operator to specify where the image is to be placed.
    • Làm operator to draw the image on the page.
    • GRestore operator to save the updated graphical state.
  • Lưu tệp PDF đã cập nhật bằng phương pháp Document.Save (String).

Mẫu mã sau đây cho thấy cách thêm hình ảnh vào tệp PDF bằng C#.

// Để có các ví dụ và tệp dữ liệu đầy đủ, vui lòng truy cập https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Mở tài liệu
Document pdfDocument = new Document("AddImage.pdf");

// Đặt tọa độ
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// Lấy trang cần thêm hình ảnh
Page page = pdfDocument.Pages[1];

// Tải hình ảnh vào luồng
FileStream imageStream = new FileStream("aspose-logo.jpg", FileMode.Open);

// Thêm hình ảnh vào bộ sưu tập Hình ảnh của Tài nguyên Trang
page.Resources.Images.Add(imageStream);

// Sử dụng toán tử GSave: toán tử này lưu trạng thái đồ họa hiện tại
page.Contents.Add(new Aspose.Pdf.Operators.GSave());

// Tạo các đối tượng Hình chữ nhật và Ma trận
Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY });

// Sử dụng toán tử ConcatenateMatrix (ma trận nối): xác định cách đặt hình ảnh
page.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(matrix));
XImage ximage = page.Resources.Images[page.Resources.Images.Count];

// Sử dụng toán tử Do: toán tử này vẽ hình ảnh
page.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name));

// Sử dụng toán tử GRestore: toán tử này khôi phục trạng thái đồ họa
page.Contents.Add(new Aspose.Pdf.Operators.GRestore());

// Lưu tài liệu cập nhật
pdfDocument.Save("AddImage_out.pdf");

Trích xuất hình ảnh từ PDF trong C#

Trong trường hợp bạn muốn trích xuất tất cả các hình ảnh từ một tệp PDF, bạn có thể thực hiện theo các bước dưới đây.

  • Sử dụng lớp Tài liệu để tải tệp PDF hiện có.
  • Lấy hình ảnh mong muốn trong đối tượng XImage từ bộ sưu tập Tài nguyên của một trang cụ thể bằng cách sử dụng chỉ mục.
  • Lưu hình ảnh đã trích xuất ở định dạng mong muốn bằng phương pháp XImage.Save (FileStream, ImageFormat).

Mẫu mã sau đây cho thấy cách trích xuất hình ảnh từ PDF bằng C#.

// Để có các ví dụ và tệp dữ liệu đầy đủ, vui lòng truy cập https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Mở tài liệu
Document pdfDocument = new Document("ExtractImages.pdf");

// Trích xuất một hình ảnh cụ thể
XImage xImage = pdfDocument.Pages[1].Resources.Images[1];

FileStream outputImage = new FileStream("output.jpg", FileMode.Create);

// Lưu hình ảnh đầu ra
xImage.Save(outputImage, ImageFormat.Jpeg);
outputImage.Close();

Xóa hình ảnh khỏi PDF trong C#

Khi bạn đã có quyền truy cập vào tài nguyên của một trang trong PDF, bạn có thể xóa hình ảnh khỏi trang đó. Sau đây là các bước để xóa hình ảnh khỏi tệp PDF bằng C#.

Mẫu mã sau đây cho thấy cách xóa hình ảnh khỏi PDF bằng C#.

// Để có các ví dụ và tệp dữ liệu đầy đủ, vui lòng truy cập https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Mở tài liệu
Document pdfDocument = new Document("DeleteImages.pdf");

// Xóa một hình ảnh cụ thể
pdfDocument.Pages[1].Resources.Images.Delete(1);

// Lưu tệp PDF đã cập nhật
pdfDocument.Save("output.pdf");

Thay thế hình ảnh trong PDF trong C#

Aspose.PDF for .NET cũng cho phép bạn thay thế một hình ảnh cụ thể trong PDF. Đối với điều này, bạn có thể thay thế hình ảnh trong bộ sưu tập hình ảnh của trang. Sau đây là các bước để thay thế một hình ảnh trong PDF bằng C#.

  • Tải tệp PDF bằng lớp Tài liệu.
  • Thay thế hình ảnh mong muốn bằng phương pháp [Document.Pages 1 .Resources.Images.Replace (Int32, Stream, Int32, Boolean)]24.
  • Lưu tệp PDF đã cập nhật bằng phương pháp Document.Save (String).

Mẫu mã sau đây cho thấy cách thay thế một hình ảnh trong PDF bằng C#.

// Để có các ví dụ và tệp dữ liệu đầy đủ, vui lòng truy cập https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Mở tài liệu
Document pdfDocument = new Document("input.pdf");

// Thay thế một hình ảnh cụ thể
pdfDocument.Pages[1].Resources.Images.Replace(1, new FileStream("lovely.jpg", FileMode.Open));

// Lưu tệp PDF đã cập nhật
pdfDocument.Save("output.pdf");

C# .NET PDF API - Nhận Giấy phép Miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để dùng thử API mà không có giới hạn đánh giá.

Sự kết luận

Hình ảnh và các đối tượng đồ họa là các yếu tố quan trọng của tài liệu PDF. Do đó, trong bài viết này, chúng tôi đã trình bày cách xử lý hình ảnh trong PDF bằng C# .NET API. Hướng dẫn từng bước và các mẫu mã đã chỉ ra cách thêm, trích xuất, xóa và thay thế hình ảnh trong tệp PDF trong C#. Bạn có thể khám phá thêm về C# PDF API bằng cách sử dụng tài liệu.

Xem thêm