首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网格类标签.动态生成节点js的贴纸

网格类标签.动态生成节点js的贴纸
EN

Stack Overflow用户
提问于 2022-03-21 20:28:00
回答 2查看 260关注 0票数 0

所以我有一堆json,无限多的情况下,每天都有报告生成,我必须生成一个PDF,包含所有必要的信息--一个标签接着一个标签,并排,网格样式。

唯一似乎能解决我需求的npm库是反应-艾弗里,乍一看它似乎是解决我的问题的完美解决方案,因为我使用的是Avery标签,我的前端是基于反应的,所以我可以从后端获取json并生成pdf,但是这个库已经3年没有维护了,文档没有为我清楚地说明如何使用它,当我尝试实现它时,给了我很多错误。

有什么办法让我做到这一点吗?前端聚焦或后端使用Node.js就行了。

我已经尝试了pdfkit,我目前正在使用它来生成pdf,但是当涉及到将项目并排放置时,它并没有起作用。

标签制作和它的后续pdfme似乎为我提供了为模板创建和添加占位符的功能,但是我找不到我需要的网格功能。

EN

回答 2

Stack Overflow用户

发布于 2022-03-23 17:20:02

您可以使用pdfme在每个标签位置放置一个文本对象来创建您自己的网格(计算方法是将A4页面除以标签行数和cols数):

代码语言:javascript
复制
const fontSize: number = 12;
const labelWidth: number = 99;
const labelHeight: number = 38;
const sheetHeight: number = 297;
const sheetWidth: number = 210;
const sheetCols: number = 2;
const sheetRows: number = 7;

const template: Template = {
  basePdf: BLANK_PDF,
  schemas: [
    {
      0: {
        type: "text",
        position: { x: (sheetHeight / sheetRows) * 0, y: (sheetWidth / sheetCols) * 0 },
        width: labelWidth,
        height: labelHeight,
        alignment: "center",
        fontSize: fontSize,
      },
      13: {
        type: "text",
        position: { x: (sheetHeight / sheetRows) * 6, y: (sheetWidth / sheetCols) * 1 },
        width: labelWidth,
        height: labelHeight,
        alignment: "center",
        fontSize: fontSize,
      },


const inputs = [{ 0: "a", 13: "z" }];

generate({ template, inputs }).then((pdf) => {
console.log(pdf);
});
票数 1
EN

Stack Overflow用户

发布于 2022-05-27 16:26:04

您可以使用HTML和CSS设计标签,然后使用paged.js将其呈现为PDF格式。Paged.js是一个javascript库,它实现了W3C分页媒体标准,允许您使用W3C和CSS设计打印。Paged.js既可以作为浏览器中的多边形填充,也可以作为生成PDF的命令行接口。

对于浏览器中标签页的简单设计迭代,然后命令行版本可以用于在生产中生成PDF,这种多填充版本是非常好的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71563736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档