Объедините PDF-файлы в al oop (Hummus-Recipe) - PullRequest
2 голосов
/ 23 февраля 2020

Я работаю с библиотекой Hummus-Recipe, и она работает нормально, но я хочу сделать функцию, которая принимает массив файлов, чтобы добавить все файлы к одному.

Это мой код, который работает:

const filesRoot = './uploads';
router.route('/')
.get( async (request, response) => {
        const src =  filesRoot + '/one.pdf';
        const appendedFile = filesRoot + '/two.pdf';
        const appendedFile2 = filesRoot + '/three.pdf';
        const output = filesRoot + '/new.pdf';
        const recipe = new HummusRecipe(src, output);
        recipe
            .appendPage(appendedFile)
            .appendPage(appendedFile2)
            .endPDF();
    });

Как мне взять этот код и заставить его принимать массив ??

Примерно так:

let combinePdfFiles = (array) => {
    for (let i = 0; i < array.length; i++) {
    }

};

спасибо.

Ответы [ 2 ]

1 голос
/ 23 февраля 2020

Вы можете использовать пакет easy-pdf-merge , который позволяет объединить массив некоторых файлов PDF.

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

const merge = require('easy-pdf-merge');

merge(source_files,dest_file_path,function(err){
  if(err) {
    return console.log(err)
  }
  console.log('Success')
});

Пример:

merge(['File One.pdf', 'File Two.pdf'], 'File Ouput.pdf', function(err){
  if(err) {
    return console.log(err)
  }
  console.log('Successfully merged!')
});
0 голосов
/ 23 февраля 2020

Я создаю эту функцию, и она работает.

const combinePdfFiles = async (files, companyID, flowID) => {
    const filesRoot = `./uploads/${companyID}/${flowID}`;
      try {
        const originalFile = `${filesRoot}/${files[0]}`;
        const output = `${filesRoot}/combined.pdf`;
        const recipe = new HummusRecipe(originalFile, output);
        for (let i = 1; i < files.length; i++) {
            recipe
            .appendPage(`${filesRoot}/${files[i]}`);
        }
        recipe.endPDF();
      } catch (error) {
          throw error;
      }

};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...