Решение преобразование PDF в изображение Centos Stream 8 с помощью узла JS

#node.js #centos

Вопрос:

Пытаясь достичь цели автоматизации процесса преобразования PDF в изображение, я столкнулся со многими препятствиями, такими как «Linux не поддерживается», «pdfToCairo не является функцией» Некоторые библиотеки используют poppler, но Centos автоматически не устанавливает необходимые зависимости.

Ниже приведены используемая библиотека и скрипт, благодаря pdf2img-обещаниям и его создателю.

Ответ №1:

Решение:

Зависимости Эти зависимости должны быть установлены на вашем сервере, так как их использует пакет gm:

GraphicsMagick GhostScript

  $ yum  install GraphicsMagick ghostscript
 

Установка

  $ npm install pdf2img-promises
 

Использование

  const fs      = require('fs');
    const path    = require('path');
    const Pdf2Img = require('pdf2img-promises');
    
    let input   = __dirname   '/test.pdf';
    let fileName = 'test';
    
    let converter = new Pdf2Img();
    
    // The event emitter is emitting to the file name
    converter.on(fileName, (msg) => {
        console.log('Received: ', msg);
    });

converter.setOptions({
  type: 'png',                                // png or jpg, default jpg
  size: 1024,                                 // default 1024
  density: 600,                               // default 600
  quality: 100,                               // default 100
  outputdir: __dirname   path.sep   'output', // output folder, default null (if null given, then it will create folder name same as file name)
  outputname: fileName,                       // output file name, dafault null (if null given, then it will create image name same as input name)
  page: null                                  // convert selected page, default null (if null given, then it will convert all pages)
});

converter.convert(input)
  .then(info => {
    console.log(info);
  })
  .catch(err => {
    console.error(err);
  })
 

Он вернет массив разделенных и преобразованных файлов изображений.

 { result: 'success',
  message: 
   [ { page: 1,
       name: 'test_1.jpg',
       size: 17.275,
       path: '/output/test_1.jpg' },
     { page: 2,
       name: 'test_2.jpg',
       size: 24.518,
       path: '/output/test_2.jpg' },
     { page: 3,
       name: 'test_3.jpg',
       size: 24.055,
       path: '/output/test_3.jpg' } ] }
 

https://npm.io/package/pdf2img-promises