Javascript pdfkit中的HTML表(Expressjs Nodejs)
我正在使用pdfkit生成PDF文件,我想将此PDF文件发送到浏览器。我下面的代码运行良好,我得到了一个带有文本的pdf 实际上,下面的代码是使用Node.js中的pdfkit生成PDF的示例,但现在我想创建html表 最新代码Javascript pdfkit中的HTML表(Expressjs Nodejs),javascript,node.js,express,node-pdfkit,Javascript,Node.js,Express,Node Pdfkit,我正在使用pdfkit生成PDF文件,我想将此PDF文件发送到浏览器。我下面的代码运行良好,我得到了一个带有文本的pdf 实际上,下面的代码是使用Node.js中的pdfkit生成PDF的示例,但现在我想创建html表 最新代码 var PDFDocument=require(“pdfkit”); var fs=要求(“fs”); doc=新的PDF文档(); 文件管道(fs.createWriteStream(“out.pdf”); 文件移动到(300,75) .lineTo(373301)
var PDFDocument=require(“pdfkit”);
var fs=要求(“fs”);
doc=新的PDF文档();
文件管道(fs.createWriteStream(“out.pdf”);
文件移动到(300,75)
.lineTo(373301)
.lineTo(181161)
.lineTo(419161)
.lineTo(227301)
.填充(“红色”、“奇偶”);
var loremIpsum=“Lorem ipsum door sit amet,concetetur adipising elit.Etiam in…”;
doc.y=320;
fillColor文件(“黑色”);
文件文本(loremIpsum{
第10段,
缩进:20,
对齐:“证明”,
栏目:2
});
文件管道(res);
doc.end();
但我不知道如何使用pdfkit生成pdf格式的HTML表
有人能帮我创建HTML表格PDF吗?直接使用PDFKit是不容易的。您必须自己实现表呈现逻辑。如果你想做得简单,你只需要意识到表格只是一堆矩形,里面有文本。这将使用一次性代码。但它不会灵活 如果您不介意稍微偏离PDFKit,有几个选项:
- 有一个支持表的PDFKit。下面是一个应该使用的示例
- 它构建在PDFKit之上,支持表。与PDFKit不同,Pdfmake支持声明性语法
artikelList.map(artikel => {
let yPos = doc.y;
doc
.fontSize(8)
.text(artikel.titel, (x = 50), (y = yPos))
.text(artikel.menge, (x = 200), (y = yPos))
.text(`${artikel.spOhne.toFixed(2)}€`, (x = 250), (y = yPos))
.text(`${(artikel.USt / 100).toFixed(2)}%`, (x = 350), (y = yPos))
.text(
`${(artikel.spOhne * (1 + artikel.USt / 100)).toFixed(2)}€`,
(x = 400),
(y = yPos)
)
.text(
`${(artikel.menge * artikel.spOhne * (1 + artikel.USt / 100)).toFixed(
2
)}€`,
(x = 475),
(y = yPos),
{ align: 'right' }
);
});
实际上,只是固定y位置,然后在x位置移动。我想通过添加rec
和stroke
可以很直接地画出围绕它的线
产生类似这样的东西
正如我在上一个问题中告诉你的,如果你向我们展示了你自己为解决问题所做的一些努力,这将是有益的(只是说你不知道并不等于努力。谷歌搜索,寻找例子。你是否尝试过做某事但失败了?如果是,你尝试过做什么?等等)。这不仅是为了学会处理问题,而且更多的人会倾向于帮助那些首先表现出自己尝试的人,因为这意味着你真正在努力学习\做一些事情,而不是期望别人出于懒惰而为你编写代码(比你想象的更常见)@yuvi:我尝试过使用doc.table,但pdfkit中没有这样的东西,也有下面的链接告诉我们不能将其用于生产用途。我也有同样的问题,最终使用了基于pdfkit的,但对类似的东西有更高级别的支持。值得补充的是,pdfkit在“即将到来”下有表看起来很有前途!
artikelList.map(artikel => {
let yPos = doc.y;
doc
.fontSize(8)
.text(artikel.titel, (x = 50), (y = yPos))
.text(artikel.menge, (x = 200), (y = yPos))
.text(`${artikel.spOhne.toFixed(2)}€`, (x = 250), (y = yPos))
.text(`${(artikel.USt / 100).toFixed(2)}%`, (x = 350), (y = yPos))
.text(
`${(artikel.spOhne * (1 + artikel.USt / 100)).toFixed(2)}€`,
(x = 400),
(y = yPos)
)
.text(
`${(artikel.menge * artikel.spOhne * (1 + artikel.USt / 100)).toFixed(
2
)}€`,
(x = 475),
(y = yPos),
{ align: 'right' }
);
});