Извлечение изображений из файлов PDF с помощью Node.js

Документы PDF сохраняют содержимое, включая изображения и текст, как есть. В некоторых случаях нам может потребоваться извлечь изображения из файлов PDF acrobat для их повторного использования. Мы можем легко извлечь все изображения или изображения с определенных страниц, встроенных в документы PDF, программно в облаке. В этой статье мы узнаем, как извлекать изображения из PDF-файлов с помощью REST API в Node.js.

Для извлечения фотографий из pdf в этой статье должны быть затронуты следующие темы:

REST API для извлечения изображений и Node.js SDK

Для извлечения изображений из PDF-документов мы будем использовать API Node.js SDK для GroupDocs.Parser Cloud. Он позволяет извлекать текст, изображения и анализировать данные по шаблону из всех популярных форматов документов. Пожалуйста, установите его с помощью следующей команды в консоли:

npm install groupdocs-parser-cloud

Пожалуйста, получите свой идентификатор клиента и секрет из панели инструментов, прежде чем выполнять указанные шаги. Получив свой идентификатор и секрет, добавьте код, как показано ниже:

// В этом примере кода показано, как добавить идентификатор клиента и секрет в код.
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";

Извлечение изображений из PDF с помощью REST API в Node.js

Мы можем извлечь изображения из документов PDF, выполнив простые шаги, указанные ниже:

Загрузить документ

Во-первых, мы загрузим документ PDF, содержащий изображения, в облако, используя пример кода, приведенный ниже:

// В этом примере кода показано, как загрузить PDF-файл в облако в node.js. 
// Создать FileApi
let fileApi = groupdocs_parser_cloud.FileApi.fromConfig(configuration);

// Путь к входному файлу
let resourcesFolder = 'C:\\Files\\Parser\\sample.pdf';
fs.readFile(resourcesFolder, (err, fileStream) => {
  // Запрос на загрузку файла
  let request = new groupdocs_parser_cloud.UploadFileRequest("sample.pdf", fileStream, myStorage);
  // Загрузить файл
  fileApi.uploadFile(request);
});

В результате загруженный PDF-файл будет доступен в разделе файлов панели инструментов в облаке. Этот файл доступен для извлечения изображения из pdf.

Извлечь все изображения из файла PDF в Node.js

Теперь мы программно извлечем все изображения из загруженного PDF-файла, выполнив следующие шаги:

  • Во-первых, создайте экземпляр ParseApi.
  • Затем укажите путь к загруженному файлу PDF.
  • Затем определите ImageOptions и назначьте файл.
  • После этого создайте ImageRequest с ImageOptions в качестве аргумента.
  • Наконец, извлеките изображения, вызвав метод images().

В следующем примере кода показано, как извлечь все изображения из файла PDF с помощью REST API в Node.js.

// В этом примере кода показано, как извлечь все изображения из PDF-файла в Node.js.
//Инициализация API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Путь к входному файлу
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "sample.pdf";

// определить параметры изображения
let options = new groupdocs_parser_cloud.ImagesOptions();
options.fileInfo = fileInfo;

// Запрос изображения
let request = new groupdocs_parser_cloud.ImagesRequest(options);

// Извлечь изображения
let result = await parseApi.images(request);

// Показать результаты
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);
});
Извлечение изображений из PDF с помощью REST API в Node.js

Извлечение изображений из PDF с помощью REST API в Node.js

Скачать извлеченные изображения

Приведенный выше пример кода сохранит извлеченные изображения в облаке. Мы можем загрузить эти изображения, используя пример кода, приведенный ниже:

// В этом примере кода показано, как загружать изображения из облака с помощью Node.js.
// Создание необходимых экземпляров API
var folderApi = groupdocs_parser_cloud.FolderApi.fromConfig(configuration);
var fileApi = groupdocs_parser_cloud.FileApi.fromConfig(configuration);

// Получить запрос списка файлов
var filesListRequest = new groupdocs_parser_cloud.GetFilesListRequest("parser/images/sample_pdf/", myStorage);

// Получить список файлов
var filesList = await folderApi.getFilesList(filesListRequest);

for (var count = 0; count < filesList.value.length; count++) {
  // Запрос на скачивание файла
  let request = new groupdocs_parser_cloud.DownloadFileRequest(filesList.value[count].path, myStorage);

  // Загрузить файл
  let response = await fileApi.downloadFile(request);

  // Сохранить файл в папку на диске
  fs.writeFile("C:\\Files\\parser\\images\\" + filesList.value[count].name, response, "binary", function (err) { });
  console.log(response);
}

Вот как можно экспортировать изображение из файла PDF, а затем загрузить его из облака.

Сохранение изображений по номерам страниц из PDF-документов в Node.js

Мы можем экспортировать изображение из определенных страниц PDF вместо всего документа, выполнив шаги, указанные ниже.

  • Во-первых, создайте экземпляр ParseApi.
  • Затем укажите путь к загруженному файлу PDF.
  • Затем определите ImageOptions и назначьте файл.
  • Установите номер начальной страницы и общее количество страниц, откуда следует извлекать изображения.
  • После этого создайте ImageRequest с ImageOptions в качестве аргумента.
  • Наконец, извлеките изображения, вызвав метод images().

В следующем примере кода показано, как извлечь изображения из файла PDF по номерам страниц из документа PDF с помощью REST API в Node.js. Пожалуйста, следуйте инструкциям, упомянутым ранее, чтобы загрузить извлеченные изображения.

// В этом примере кода показано, как извлекать изображения из определенных страниц PDF-файла в Node.js.
//Инициализация API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Путь к входному файлу
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "sample.pdf";

// Определить параметры изображения
let options = new groupdocs_parser_cloud.ImagesOptions();
options.fileInfo = fileInfo;
options.startPageNumber = 1;      // Start page number
options.countPagesToExtract = 1;  // Total pages

// Запрос изображения
let request = new groupdocs_parser_cloud.ImagesRequest(options);

// Извлечь изображения
let result = await parseApi.images(request);

// Показать результаты
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);
  });
});

Извлечение изображений из документа, прикрепленного к PDF, в Node.js

Мы также можем извлечь изображения из документа внутри контейнера, доступного в виде вложения в файле PDF, выполнив шаги, указанные ниже.

  • Во-первых, создайте экземпляр ParseApi.
  • Затем укажите путь к загруженному файлу PDF.
  • Затем определите ImageOptions и назначьте файл.
  • Затем определите ContainerItemInfo и укажите относительный путь к внутреннему документу.
  • После этого создайте ImageRequest с ImageOptions в качестве аргумента.
  • Наконец, извлеките изображения, вызвав метод images().

В следующем примере кода показано, как извлечь изображения из документа внутри документа PDF с помощью REST API в Node.js. Пожалуйста, следуйте инструкциям, упомянутым ранее, чтобы загрузить извлеченные изображения.

// В этом примере кода показано, как извлечь изображения из документа, вложенного в файл PDF, в Node.js.
// Инициализация API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Путь к входному файлу
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "PDF_with_Attachment.pdf";
fileInfo.password = "password";

// Определить параметры изображения
let options = new groupdocs_parser_cloud.ImagesOptions();
options.fileInfo = fileInfo;

// Элемент контейнера
options.ContainerItemInfo = new groupdocs_parser_cloud.ContainerItemInfo();
options.ContainerItemInfo.relativePath = "template-document.pdf";

// Запрос изображения
let request = new groupdocs_parser_cloud.ImagesRequest(options);

// Извлечь изображения
let result = await parseApi.images(request);

// Показать результаты
let images = result.images;
images.forEach(image => {
  console.log("Image path: " + image.path);
  console.log("Image format: " + image.fileFormat + ". Page index: " + image.pageIndex);
});

Попробуйте онлайн

Как извлечь изображения из pdf бесплатно? Пожалуйста, попробуйте следующий бесплатный онлайн-инструмент для анализа PDF-файлов для извлечения изображений в формате PDF онлайн, который разработан с использованием вышеуказанного API. https://products.groupdocs.app/parser/pdf

Заключение

В этой статье мы узнали, как:

  • извлекать изображения из PDF-файлов с помощью Node.js в облаке;
  • программно загрузить файл PDF в облако;
  • загрузить извлеченные изображения из облака.

Кроме того, вы можете узнать больше о GroupDocs.Parser Cloud API, воспользовавшись документацией. Мы также предоставляем раздел Справочник по API, который позволяет визуализировать наши API и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также