Trích xuất hình ảnh từ tệp PDF bằng Node.js

PDF tài liệu giữ nguyên nội dung bao gồm hình ảnh và văn bản. Trong một số trường hợp nhất định, chúng tôi có thể cần trích xuất hình ảnh từ tệp PDF acrobat để sử dụng lại chúng. Chúng tôi có thể dễ dàng trích xuất tất cả hình ảnh hoặc hình ảnh từ các trang cụ thể được nhúng trong tài liệu PDF theo chương trình trên đám mây. Trong bài viết này, chúng ta sẽ tìm hiểu cách trích xuất hình ảnh từ tệp PDF bằng API REST trong Node.js.

Các chủ đề sau sẽ được đề cập để trích xuất ảnh từ pdf trong bài viết này:

Image Extractor REST API và Node.js SDK

Để trích xuất hình ảnh từ tài liệu PDF, chúng tôi sẽ sử dụng API Node.js SDK của GroupDocs.Parser Cloud. Nó cho phép trích xuất văn bản, hình ảnh và phân tích cú pháp dữ liệu theo mẫu từ tất cả các định dạng tài liệu phổ biến. Vui lòng cài đặt nó bằng lệnh sau trong bảng điều khiển:

npm install groupdocs-parser-cloud

Vui lòng lấy Client ID và Secret của bạn từ bảng điều khiển trước khi làm theo các bước được đề cập. Khi bạn có ID và bí mật của mình, hãy thêm mã như hình bên dưới:

// Ví dụ về mã này trình bày cách thêm ID khách hàng và Bí mật của bạn vào mã.
global.clientId = '659fe7da-715b-4744-a0f7-cf469a392b73';
global.clientSecret = 'b377c36cfa28fa69960ebac6b6e36421';
global.myStorage = "";

const configuration = new groupdocs_parser_cloud.Configuration(clientId, clientSecret);
configuration.apiBaseUrl = "https://api.groupdocs.cloud";

Trích xuất hình ảnh từ PDF bằng API REST trong Node.js

Chúng tôi có thể trích xuất hình ảnh từ tài liệu PDF bằng cách thực hiện theo các bước đơn giản được đề cập bên dưới:

Tải lên tài liệu

Đầu tiên, chúng tôi sẽ tải tài liệu PDF có chứa hình ảnh lên đám mây bằng cách sử dụng mẫu mã được cung cấp bên dưới:

// Ví dụ mã này trình bày cách tải tệp PDF lên đám mây trong node.js 
// Xây dựng tệpApi
let fileApi = groupdocs_parser_cloud.FileApi.fromConfig(configuration);

// Đường dẫn tệp đầu vào
let resourcesFolder = 'C:\\Files\\Parser\\sample.pdf';
fs.readFile(resourcesFolder, (err, fileStream) => {
  // Tải lên yêu cầu tập tin
  let request = new groupdocs_parser_cloud.UploadFileRequest("sample.pdf", fileStream, myStorage);
  // Cập nhật dử liệu
  fileApi.uploadFile(request);
});

Do đó, tệp PDF đã tải lên sẽ có sẵn trong phần tệp của trang tổng quan trên đám mây. Tệp này có sẵn để trích xuất hình ảnh từ pdf.

Trích xuất tất cả hình ảnh từ tệp PDF trong Node.js

Bây giờ, chúng tôi sẽ trích xuất tất cả các hình ảnh từ tệp PDF đã tải lên theo chương trình bằng cách thực hiện theo các bước dưới đây:

  • Đầu tiên, tạo một phiên bản của ParseApi.
  • Tiếp theo, cung cấp đường dẫn tệp PDF đã tải lên.
  • Sau đó, xác định ImageOptions và gán tệp.
  • Sau đó, tạo ImagesRequest với ImageOptions làm đối số.
  • Cuối cùng, trích xuất hình ảnh bằng cách gọi phương thức images().

Mẫu mã sau đây cho biết cách trích xuất tất cả hình ảnh từ tệp PDF bằng API REST trong Node.js.

// Ví dụ mã này trình bày cách trích xuất tất cả hình ảnh từ tệp PDF trong Node.js.
//khởi tạo api
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Đường dẫn tệp đầu vào
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "sample.pdf";

// xác định tùy chọn hình ảnh
let options = new groupdocs_parser_cloud.ImagesOptions();
options.fileInfo = fileInfo;

// yêu cầu hình ảnh
let request = new groupdocs_parser_cloud.ImagesRequest(options);

// Trích xuất hình ảnh
let result = await parseApi.images(request);

// Hiển thị kết quả
let images = result.images;
images.forEach(image => {
  console.log("Image path in storage: " + image.path);
  console.log("Download url: " + image.downloadUrl);
  console.log("Image format: " + image.fileFormat + ". Page index: " + image.pageIndex);
});
Trích xuất hình ảnh từ PDF bằng API REST trong Node.js

Trích xuất hình ảnh từ PDF bằng API REST trong Node.js

Tải xuống hình ảnh được trích xuất

Mẫu mã trên sẽ lưu các hình ảnh được trích xuất trên đám mây. Chúng tôi có thể tải xuống những hình ảnh này bằng cách sử dụng mẫu mã được cung cấp bên dưới:

// Ví dụ mã này trình bày cách tải xuống hình ảnh từ đám mây bằng Node.js
// Xây dựng các phiên bản api cần thiết
var folderApi = groupdocs_parser_cloud.FolderApi.fromConfig(configuration);
var fileApi = groupdocs_parser_cloud.FileApi.fromConfig(configuration);

// Nhận yêu cầu danh sách tệp
var filesListRequest = new groupdocs_parser_cloud.GetFilesListRequest("parser/images/sample_pdf/", myStorage);

// Nhận danh sách tập tin
var filesList = await folderApi.getFilesList(filesListRequest);

for (var count = 0; count < filesList.value.length; count++) {
  // Yêu cầu tệp tải xuống
  let request = new groupdocs_parser_cloud.DownloadFileRequest(filesList.value[count].path, myStorage);

  // Tải tập tin
  let response = await fileApi.downloadFile(request);

  // Lưu tệp vào thư mục trên đĩa
  fs.writeFile("C:\\Files\\parser\\images\\" + filesList.value[count].name, response, "binary", function (err) { });
  console.log(response);
}

Đây là cách xuất hình ảnh từ tệp pdf và sau đó tải xuống từ đám mây.

Lưu hình ảnh theo số trang từ tài liệu PDF trong Node.js

Chúng tôi có thể xuất hình ảnh từ các trang PDF cụ thể thay vì toàn bộ tài liệu bằng cách thực hiện theo các bước dưới đây.

  • Đầu tiên, tạo một phiên bản của ParseApi.
  • Tiếp theo, cung cấp đường dẫn tệp PDF đã tải lên.
  • Sau đó, xác định ImageOptions và gán tệp.
  • Đặt số trang bắt đầu và tổng số trang từ nơi trích xuất hình ảnh.
  • Sau đó, tạo ImagesRequest với ImageOptions làm đối số.
  • Cuối cùng, trích xuất hình ảnh bằng cách gọi phương thức images().

Mẫu mã sau đây cho biết cách trích xuất ảnh từ tệp pdf theo số trang từ tài liệu PDF bằng API REST trong Node.js. Vui lòng làm theo các bước được đề cập trước đó để tải xuống các hình ảnh được giải nén.

// Ví dụ mã này trình bày cách trích xuất hình ảnh từ các trang cụ thể của tệp PDF trong Node.js.
//khởi tạo api
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Đường dẫn tệp đầu vào
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "sample.pdf";

// Xác định các tùy chọn hình ảnh
let options = new groupdocs_parser_cloud.ImagesOptions();
options.fileInfo = fileInfo;
options.startPageNumber = 1;      // Start page number
options.countPagesToExtract = 1;  // Total pages

// yêu cầu hình ảnh
let request = new groupdocs_parser_cloud.ImagesRequest(options);

// Trích xuất hình ảnh
let result = await parseApi.images(request);

// Hiển thị kết quả
let pages = result.pages;
pages.forEach(page => {
  console.log("Page index: " + page.pageIndex);
  page.images.forEach(image => {
    console.log("Download url: " + image.downloadUrl);
    console.log("Image format: " + image.fileFormat + ". Page index: " + image.pageIndex);
  });
});

Trích xuất hình ảnh từ tài liệu được đính kèm với PDF trong Node.js

Chúng tôi cũng có thể trích xuất hình ảnh từ tài liệu bên trong vùng chứa, có sẵn dưới dạng tệp đính kèm trong tệp PDF, bằng cách thực hiện theo các bước được cung cấp bên dưới.

  • Đầu tiên, tạo một phiên bản của ParseApi.
  • Tiếp theo, cung cấp đường dẫn tệp PDF đã tải lên.
  • Sau đó, xác định ImageOptions và gán tệp.
  • Tiếp theo, xác định ContainerItemInfo và cung cấp đường dẫn tương đối của tài liệu bên trong.
  • Sau đó, tạo ImagesRequest với ImageOptions làm đối số.
  • Cuối cùng, trích xuất hình ảnh bằng cách gọi phương thức images().

Mẫu mã sau đây cho biết cách trích xuất hình ảnh từ tài liệu bên trong tài liệu PDF bằng API REST trong Node.js. Vui lòng làm theo các bước được đề cập trước đó để tải xuống các hình ảnh được trích xuất.

// Ví dụ mã này trình bày cách trích xuất hình ảnh từ tài liệu được đính kèm trong tệp PDF trong Node.js.
// khởi tạo api
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Đường dẫn tệp đầu vào
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "PDF_with_Attachment.pdf";
fileInfo.password = "password";

// Xác định các tùy chọn hình ảnh
let options = new groupdocs_parser_cloud.ImagesOptions();
options.fileInfo = fileInfo;

// Vật phẩm vùng chứa
options.ContainerItemInfo = new groupdocs_parser_cloud.ContainerItemInfo();
options.ContainerItemInfo.relativePath = "template-document.pdf";

// yêu cầu hình ảnh
let request = new groupdocs_parser_cloud.ImagesRequest(options);

// Trích xuất hình ảnh
let result = await parseApi.images(request);

// Hiển thị kết quả
let images = result.images;
images.forEach(image => {
  console.log("Image path: " + image.path);
  console.log("Image format: " + image.fileFormat + ". Page index: " + image.pageIndex);
});

Thử trực tuyến

Làm cách nào để trích xuất hình ảnh từ pdf miễn phí? Vui lòng thử công cụ Phân tích cú pháp PDF trực tuyến miễn phí sau đây để trích xuất hình ảnh pdf trực tuyến, công cụ này được phát triển bằng cách sử dụng API ở trên. https://products.groupdocs.app/parser/pdf

Phần kết luận

Trong bài viết này, chúng ta đã học cách:

  • trích xuất hình ảnh từ tệp PDF bằng Node.js trên đám mây;
  • lập trình tải tệp PDF lên đám mây;
  • tải xuống các hình ảnh được trích xuất từ đám mây.

Ngoài ra, bạn có thể tìm hiểu thêm về GroupDocs.Parser Cloud API bằng cách sử dụng tài liệu. Chúng tôi cũng cung cấp phần Tham khảo API cho phép bạn hình dung và tương tác trực tiếp với các API của chúng tôi thông qua trình duyệt. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn.

Xem thêm