在 Node.js 中生成带条形码的 pdf

Jam*_*een 5 javascript pdf barcode node.js node-pdfkit

我正在使用https://github.com/devongovett/pdfkit生成 PDF 文件,我可以简单地使用类似

app.get('/get-pdf', (req, res) => {
  const doc = new PDFDocument();
  const filename = 'my_pdf.pdf';

  res.setHeader('Content-disposition', 'attachment; filename="' + filename + '"');
  res.setHeader('Content-type', 'application/pdf');

  const content = "Some content";

  doc.y = 300;
  doc.text(content, 50, 50);
  doc.pipe(res);
  doc.end();
});
Run Code Online (Sandbox Code Playgroud)

但我也想生成一个 UPC-A 条形码:

在此处输入图片说明

我找到了库https://github.com/lindell/JsBarcode,它可以仅从 12 位代码生成这样的条形码。但是,该库似乎主要用于客户端。

我想用这样的条形码生成一个 PDF,但我不知道该怎么做,或者 JsBarcode 对于这种单一类型的条形码来说是否太复杂。

编辑

正如评论中所建议的,我确实尝试使用 UPC-A 字体生成条形码:

app.get('/get-pdf', (req, res) => {
  const doc = new PDFDocument();
  const filename = 'my_pdf.pdf';

  res.setHeader('Content-disposition', 'attachment; filename="' + filename + '"');
  res.setHeader('Content-type', 'application/pdf');

  doc.font('/fonts/UPC-A.ttf').fontSize(50).text('012345678905');
  doc.pipe(res);
  doc.end();
});
Run Code Online (Sandbox Code Playgroud)

我从中得到

在此处输入图片说明

这看起来不错,但它看起来并不完全像常见的 UPC-A 条码。

我在http://www.fontpalace.com/font-download/UPC-A/使用了字体。

Zag*_*ine 0

我从未使用过JsBarcode,所以我无法帮助你使用这个库。但逻辑是获取代码栏的 Base64 字符串并将其像图像一样添加到您的 pdf 中。

rescode我在项目中使用 npm 模块来执行此操作。下面的代码生成一个 ean8 代码栏并将该图像添加到 PDF 中,并且工作正常。

codes = require('rescode')
codes.loadModules(['ean8'])
dataEan8 = codes.create('ean8', '12345678')
doc.image(dataEan8, 10, 10, height:30, width:130)
Run Code Online (Sandbox Code Playgroud)