Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript pdfkit中的HTML表(Expressjs Nodejs)_Javascript_Node.js_Express_Node Pdfkit - Fatal编程技术网

Javascript pdfkit中的HTML表(Expressjs Nodejs)

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)

我正在使用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)
.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支持声明性语法
看到你提到HTML,我真的建议你把PDFkit扔出门外,当你有HTML并使用or时,他们的工作是呈现HTML并选择性地输出PDF,这就是你想要的。上次我在寻找一个能很好地处理这个问题的模块时,我发现

这对我很有效:

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' }
    );
});