tldr;В поисках способа проверить, соответствует ли объединенный выходной PDF ожидаемому PDF из PDFTK.
Я написал небольшое приложение для командной строки под названием pdfm для моей жены: D Приложение является оболочкой для PDFTK. Приложение работает нормально, но я пытаюсь настроить простой тест, чтобы убедиться, что результат соответствует ожидаемому. Приложение принимает два входа - файлы и - выход. --files - это текстовый файл со списком файлов, которые должны быть объединены в указанном порядке. Я написал тест с тремя известными входными PDF-файлами. Тест вызывает приложение и объединяет три входных PDF-файла, как и ожидалось. Я попытался использовать md5 и Buffer.equals, ни один из которых не работает.
Вот код для теста, который я сделал.
const fs = require('fs-extra')
const {spawn, exec} = require('child_process')
const path = require('path')
const moment = require("moment")
const dateFormat = 'YYYY.MM.DD'
let command = `node src/index.js --output ./test/test --files ./test/testfiles.pdfm`
let outfile = path.resolve(`./test/test-${moment().format(dateFormat)}.pdf`)
let expected = path.resolve(`./test/expected.pdf`)
exec(command, async (error, stdout, stderr) => {
if (error) {
console.error(error)
} else {
let file = fs.readFileSync(outfile)
let expectedFile = fs.readFileSync(expected)
// todo
// md5()
console.log(stdout)
console.log(md5(file))
console.log(expectedFile.equals(file))
}
}
)
Репо: https://github.com/MichaelLeeHobbs/pdfMerger