在 pdfmake 中如何从字符串打印 html 数据
in pdfmake how to print html data from a string
这是 html 字符串,我想在 pdfmake 中打印它
let html_string = "<html><head></head><body><p>HI</p></body></html>";
//something like this
{ text: html_string,
pageBreak: 'after',
},
它应该打印为 pdfmake 的一部分中的 html 内容:如何打印包含 html 的字符串,因为它在 pdf 中。
您可以使用 HTML2PDF Js 库从 html 字符串制作 pdf。
检查这个 link here
npm 中有许多 JS 库可用于从图像或 html 创建 PDF。
使用 html 解析器获取您想要的 html 内容。 https://www.npmjs.com/package/node-html-parser
之后,我会编写一个对象构建函数来获取您要查找的正确 html 标记内容。
import { parse } from 'node-html-parser';
const root = parse('<ul id="list"><li>Hello World</li></ul>');
var htmlBody = root.querySelector('#list');
function getContentBuilder (htmlBody ) {
var record = {}
//Locate htmlBody childnode that you want and insert to record
return record;
}
//something like this
{ text: getContentBuilder(htmlBody) ,
pageBreak: 'after',
},
选项 1. 在将 html 传递给 pdfmake 之前将其转换为字符串。您可以使用 html-to-text
.
const PdfPrinter = require("pdfmake");
const htmlToText = require('html-to-text');
let dd = {
pageSize: "A4",
pageOrientation: "portrait",
content: [
{
text: htmlToText.fromString("<p>Hello <strong>World</strong></p>", {
wordwrap: 130
}),
style: "",
}
],
}
let printer = new PdfPrinter(fonts);
let doc = printer.createPdfKitDocument(dd);
选项 2. 使用 html-to-pdfmake
.如果您在 Nodejs 端执行此操作,则必须添加 jsdom。
const PdfPrinter = require("pdfmake");
let jsdom = require("jsdom");
let { JSDOM } = jsdom;
let { window } = new JSDOM("");
const htmlToPdfmake = require("html-to-pdfmake");
let dd = {
pageSize: "A4",
pageOrientation: "portrait",
content: [
{
text: htmlToPdfmake(salesConditions.salesConditionBody, {
window: window,
}),
style: "",
}
],
}
let printer = new PdfPrinter(fonts);
let doc = printer.createPdfKitDocument(dd);
这是 html 字符串,我想在 pdfmake 中打印它
let html_string = "<html><head></head><body><p>HI</p></body></html>";
//something like this
{ text: html_string,
pageBreak: 'after',
},
它应该打印为 pdfmake 的一部分中的 html 内容:如何打印包含 html 的字符串,因为它在 pdf 中。
您可以使用 HTML2PDF Js 库从 html 字符串制作 pdf。
检查这个 link here
npm 中有许多 JS 库可用于从图像或 html 创建 PDF。
使用 html 解析器获取您想要的 html 内容。 https://www.npmjs.com/package/node-html-parser
之后,我会编写一个对象构建函数来获取您要查找的正确 html 标记内容。
import { parse } from 'node-html-parser';
const root = parse('<ul id="list"><li>Hello World</li></ul>');
var htmlBody = root.querySelector('#list');
function getContentBuilder (htmlBody ) {
var record = {}
//Locate htmlBody childnode that you want and insert to record
return record;
}
//something like this
{ text: getContentBuilder(htmlBody) ,
pageBreak: 'after',
},
选项 1. 在将 html 传递给 pdfmake 之前将其转换为字符串。您可以使用 html-to-text .
const PdfPrinter = require("pdfmake");
const htmlToText = require('html-to-text');
let dd = {
pageSize: "A4",
pageOrientation: "portrait",
content: [
{
text: htmlToText.fromString("<p>Hello <strong>World</strong></p>", {
wordwrap: 130
}),
style: "",
}
],
}
let printer = new PdfPrinter(fonts);
let doc = printer.createPdfKitDocument(dd);
选项 2. 使用 html-to-pdfmake .如果您在 Nodejs 端执行此操作,则必须添加 jsdom。
const PdfPrinter = require("pdfmake");
let jsdom = require("jsdom");
let { JSDOM } = jsdom;
let { window } = new JSDOM("");
const htmlToPdfmake = require("html-to-pdfmake");
let dd = {
pageSize: "A4",
pageOrientation: "portrait",
content: [
{
text: htmlToPdfmake(salesConditions.salesConditionBody, {
window: window,
}),
style: "",
}
],
}
let printer = new PdfPrinter(fonts);
let doc = printer.createPdfKitDocument(dd);