[Tools] Convert SVG to a PDF in Node with PDFKit and SVG.js

本文介绍了一个使用Express框架的应用程序,该程序将SVG模板转换为PDF文件,并在其中绘制文本和日期。通过读取SVG文件,利用pdfkit和svg-to-pdfkit库,将SVG元素转化为PDF格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Given a epxress application and an svg template, we want to draw some text, date onto it and convert it to pdf as output.

const fs = require("fs")
const PDFDocument = require("pdfkit")
const SVGtoPDF = require("svg-to-pdfkit")

const window = require("svgdom")
const document = window.document
const SVG = require("svg.js")(window)

const express = require("express")
const app = express()

const background = fs
  .readFileSync("./background.svg")
  .toString()

app.get("/", (req, res) => {
  const { name, date } = req.query

  const doc = new PDFDocument({
    layout: "landscape",
    size: "A4"
  })

  const draw = SVG(document.documentElement)

  const nameSVG = draw
    .text(name)
    .size(45)
    .attr("x", "50%")
    .attr("y", "45%")
    .attr("text-anchor", "middle")

  const dateSVG = draw
    .text(date)
    .size(19)
    .attr("x", "13.9%")
    .attr("y", "87.7%")

  SVGtoPDF(doc, background)
  SVGtoPDF(doc, nameSVG.svg())
  SVGtoPDF(doc, dateSVG.svg())

  doc.pipe(res)
  doc.end()
})

app.listen(3000)

 

Code: Github

转载于:https://www.cnblogs.com/Answer1215/p/9916063.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值