Làm việc với Hình ảnh trong Tệp PDF bằng C ++

Hình ảnh có thể được sử dụng để hiển thị nhiều thứ khác nhau, từ ảnh chụp sản phẩm đến quy trình làm việc và biểu đồ. Tệp PDF có thể chứa hình ảnh dựa trên loại thông tin mà nó có. Ví dụ: hướng dẫn lắp đặt ghế sẽ bao gồm các hình ảnh về chiếc ghế trình bày cách lắp ráp nó. Có thể có các tình huống mà bạn cần phải xử lý hình ảnh trong tệp PDF theo chương trình. Đối với những trường hợp như vậy, bài viết này sẽ hướng dẫn bạn cách làm việc với hình ảnh trong tệp PDF bằng C ++. Đặc biệt, chúng tôi sẽ trình bày cách thêm, thay thế, trích xuất và xóa hình ảnh trong PDF bằng C ++.

API C ++ để thêm, cập nhật, xóa và thay thế hình ảnh PDF

Aspose.PDF dành cho C ++ là một thư viện C ++ mạnh mẽ cho phép bạn tạo, đọc và sửa đổi các tệp PDF. Hơn nữa, API hỗ trợ làm việc với hình ảnh trong tài liệu PDF. Bạn có thể cài đặt API thông qua NuGet hoặc tải xuống trực tiếp từ phần tải xuống.

PM> Install-Package Aspose.PDF.Cpp

Thêm hình ảnh vào tệp PDF trong C ++

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

Đoạn mã mẫu sau đây cho biết cách thêm hình ảnh vào tệp PDF bằng C ++.

// Tải tệp PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 1.pdf");

// Lấy trang đầu tiên
auto page = pdfDocument->get_Pages()->idx_get(1);

// Tạo một thể hiện của lớp Rectangle
double x = 100.0, y = 600.0, width = 200.0, height = 200.0;
auto rectangle = MakeObject<Aspose::Pdf::Rectangle>(x, y, x + width, y + height);

// Thêm hình ảnh vào trang
page->AddImage(u"SourceDirectory\\Images\\AsposeLogo.png", rectangle);

// Lưu tệp PDF
pdfDocument->Save(u"OutputDirectory\\add_image_output.pdf");

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

Để trích xuất hình ảnh từ tệp PDF trong C ++, hãy làm theo các bước dưới đây.

Đoạn mã mẫu sau đây trình bày cách trích xuất hình ảnh từ tệp PDF trong C ++.

// Tải tệp PDF
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");

// Trích xuất một hình ảnh cụ thể
auto image = pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->idx_get(1);

// Tạo một đối tượng luồng để lưu hình ảnh đầu ra
System::SharedPtr<System::IO::FileStream> outputImage = System::IO::File::Create(u"OutputDirectory\\extract_image_output.jpg");

// Lưu hình ảnh đầu ra
image->Save(outputImage, System::Drawing::Imaging::ImageFormat::get_Jpeg());

// Đóng luồng
outputImage->Close();

Xóa hình ảnh khỏi tệp PDF bằng C ++

Sau đây là các bước để xóa hình ảnh khỏi tệp PDF trong C ++.

Đoạn mã mẫu sau đây cho biết cách xóa hình ảnh khỏi tệp PDF trong C ++.

// Tải tệp PDF
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");

// Xóa một hình ảnh cụ thể
pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->Delete(1);

// Lưu tệp PDF
pdfDocument->Save(u"OutputDirectory\\delete_image_output.pdf");

Thay thế một hình ảnh trong một tệp PDF trong C ++

Để thay thế hình ảnh trong PDF bằng C ++, hãy làm theo các bước dưới đây.

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

// Tải tệp PDF
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");

// Mở hình ảnh mới bằng FileStream
System::SharedPtr<System::IO::FileStream> newImage = System::IO::File::OpenRead(u"SourceDirectory\\Images\\aspose.png");

// Thay thế hình ảnh cũ
pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->Replace(1, newImage);

// Đóng luồng
newImage->Close();

// Lưu tệp PDF
pdfDocument->Save(u"OutputDirectory\\replace_image_output.pdf");

API C ++ để làm việc với hình ảnh PDF - Nhận giấy phép miễn phí

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

Sự kết luận

Trong bài viết này, bạn đã học cách làm việc với hình ảnh trong tệp PDF bằng C ++. Cụ thể, bạn đã học cách thêm, trích xuất, thay thế và xóa hình ảnh khỏi tệp PDF bằng Aspose.PDF cho C ++ API. API cung cấp một loạt các tính năng bổ sung để làm việc với các tệp PDF mà bạn có thể khám phá chi tiết bằng cách truy cập tài liệu chính thức. Trong trường hợp có bất kỳ thắc mắc nào, vui lòng liên hệ với chúng tôi tại diễn đàn hỗ trợ miễn phí của chúng tôi.

Xem thêm