javascript - 服务端 PDFMake 基本脚本返回错误
问题描述
我正在开发一个需要使用pdfmake
库生成 PDF 的 Web 应用程序。在客户端运行它(用于打印)时我没有问题,但我无法设法让它在服务器端使用node.js
(将我的 pdf 保存在服务器上)。
我的服务器正在运行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.
有人已经遇到这个问题了吗?你能帮我吗 ?谢谢 !
解决方案
指定的路径printer
不正确。如果您安装软件包,npm install
它将被放置在node_modules
文件夹中。您可以在此处阅读有关软件包安装的更多信息。
因此,为了运行您的代码,我将路径更改为:
var PdfPrinter = require('./node_modules/pdfmake/src/printer');
另请确保:
- 你有
fonts
文件夹,里面存在 Roboto - 您已创建 pdfs 文件夹 (
mkdir pdfs
)
我没有触及其余部分,并且能够生成此文档:
推荐阅读
- java - 图标是否缓冲?
- python - 在 python 中使用 pandas 打印 CSV 文件时出现问题
- java - 如果未在其余查询中指定,如何将布尔值设置为 nul 而不是 false
- android - 如何正确地将颤振项目从 VSCode 导入到 Andriod Studio 以进行 Gradle Sync?
- google-apps-script - XmlService getChild 不返回命名元素
- javascript - 通过JS中的脚本更改文本框输入
- azure - 使用 Azure 数据工厂将压缩的 XML 文件从 HTTP 链接源复制并提取到 Azure Blob 存储
- r - 按文件大小过滤和关于 r 中数字编码的问题
- python - Python Scrapy - 输出具有相同名称的 XML 元素
- php - 电子邮件 - 如何识别用户的电子邮件回复?