Как конвертировать PDF-файл с помощью NodeJS + Unoconv

Мне нужно преобразовать файл docx в pdf, но я не очень хорошо знаю nodejs, однако я знаю, что можно сделать следующее:

Есть проект unoconv-worker, и в нем есть часть, где появляется следующая строка:

  var child = spawn ('unoconv', [
    '--stdout',
    '--no-launch',
    '--format', job.outputExtension,
    job.tempPath
]);

https://github.com/koumoul-dev/unoconv-worker/blob/master/route.js

В моем терминале я могу преобразовать его следующим образом, и он отлично работает:

unoconv -f pdf --output = "something.pdf" docxtoconvert.docx

Однако я хотел бы дать вам файл, в котором я дал вам маршрут, поэтому я попробовал это следующим образом:

var filePath = "/tmp/docxtoconvert.docx";
var child = spawn ("unoconv", [
  "-f",
  "pdf",
  "--output",
  "/tmp/something.pdf",
  filePath

]);

Выход:

Unoconv converter received message on stderr function () {
  if (arguments.length === 0) {
    var result = this.utf8Slice(0, this.length);
  } else {
    var result = slowToString.apply(this, arguments);
  }
  if (result === undefined)
    throw new Error('toString failed');
  return result;
}

Но это не сработало. Не могли бы вы помочь мне? Спасибо

Попробуйте указать абсолютный путь к unoconv

Tudor Constantin 27.10.2018 13:00

Unoconv находится в переменной окружения. Фактически, если я запускаю обычный проект, то есть как он есть по умолчанию, он работает правильно, без прохождения абсолютного пути unoconv

yirdebagne 27.10.2018 13:17

да, но это потому, что вы вызываете его из своего терминального сеанса (я думаю, bash), тогда как сеанс nodejs может быть настроен не так, как сеанс bash. Вот почему я предлагаю вам попробовать указать полный путь к unoconv в вашем скрипте.

Tudor Constantin 27.10.2018 13:24

Та же ошибка, несмотря на указание полного пути oneconv: конвертер Unoconv получил сообщение в функции stderr () {if (arguments.length === 0) {var result = this.utf8Slice (0, this.length); } else {var result = slowToString.apply (это, аргументы); } if (result === undefined) выбросить новую ошибку ('toString failed'); вернуть результат;

yirdebagne 27.10.2018 13:35
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
690
1

Ответы 1

Для unoconv существует множество модулей-оберток, которые могут решить вашу проблему.

Вы можете попробовать это https://www.npmjs.com/package/unoconv

Другие вопросы по теме