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

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

posted @   Zhentiw  阅读(890)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2017-11-06 [React Native] Animate the Scale of a React Native Button using Animated.spring
2017-11-06 [React] Use the URL as the source of truth in React
2015-11-06 [Angular 2] Validation
2015-11-06 [Angualr 2] Using FormBuilder
2015-11-06 [Angular 2] ng-control & ng-control-group
2015-11-06 [Angular 2] NgNonBindable
点击右上角即可分享
微信分享提示