Служебная сторона PDFMake базовый скрипт возвращает ошибку - PullRequest
0 голосов
/ 01 июня 2018

Я работаю над веб-приложением, в котором мне нужно создавать PDF-файлы с использованием библиотеки pdfmake.У меня нет проблем при запуске его на стороне клиента (для печати), но мне не удается заставить его работать на стороне сервера, используя node.js (чтобы сохранить мои pdfs на сервере).

Мой серверработает на linux и node.js и npm установлены правильно.Я также установил пакет pdfmake, используя sudo npm i pdfmake.Модуль, кажется, правильно установлен, поскольку он указан при использовании npm ls.

Затем я попытался запустить простой скрипт для генерации базового файла pdf:

var pdfmake = require('pdfmake');


var fonts = {
        Roboto: {
                normal: 'fonts/Roboto-Regular.ttf',
                bold: 'fonts/Roboto-Medium.ttf',
                italics: 'fonts/Roboto-Italic.ttf',
                bolditalics: 'fonts/Roboto-MediumItalic.ttf'
        }
};

var PdfPrinter = require('../src/printer');
var printer = new PdfPrinter(fonts);
var fs = require('fs');

var docDefinition = {
        content: [
                'First paragraph',
                'Another paragraph, this time a little bit longer to make sure, this line will be divided into at least two lines'
        ]
};

var pdfDoc = printer.createPdfKitDocument(docDefinition);
pdfDoc.pipe(fs.createWriteStream('pdfs/basics.pdf'));
pdfDoc.end();

При выполнении (sudo node pdftest.js) этот скрипт возвращает следующую ошибку: Error: Cannot find module '../src/printer'

Для меня эта папка /printer должна находиться в папке pdfmake, поэтому у меня не должно быть этой ошибки.

Я попытался переустановить пакет, снова запустив sudo npm i pdfmake, но ничего не изменилось.

Кроме того, вот что я получаю при установке:

/home/odroid
`-- pdfmake@0.1.36
  `-- linebreak@0.3.0
    `-- brfs@1.6.1
      `-- static-module@2.2.5
        `-- falafel@2.1.0
          `-- acorn@5.6.1

npm WARN enoent ENOENT: no such file or directory, open '/home/odroid/package.json'
npm WARN odroid No description
npm WARN odroid No repository field.
npm WARN odroid No README data
npm WARN odroid No license field.

Кто-нибудь уже сталкивался с этой проблемой?Можете ли вы помочь мне ?Спасибо !

1 Ответ

0 голосов
/ 01 июня 2018

Путь к printer указан неверно.Если вы установите пакет с npm install, он будет помещен в папку node_modules.Вы можете прочитать больше об установке пакета здесь .

Итак, чтобы запустить ваш код, я изменил путь на:

var PdfPrinter = require('./node_modules/pdfmake/src/printer');

Также убедитесь, что:

  • у вас есть папка fonts и Roboto существует внутри
  • вы создали папку pdfs (mkdir pdfs)

Я не трогалостальные и смогли сгенерировать этот документ:

enter image description here

...