当前位置: 首页 > 知识库问答 >
问题:

当使用html-pdf本地与联机时,文本大小会发生变化

宗政和韵
2023-03-14

实际上,我使用node js和html-pdf库在服务器上生成pdf,该pdf作为blob返回给客户机。当我在我的本地机器上做的时候,一切都很好,但是当我把它上传到服务器并测试它的时候。在生产过程中,文本大小会增加。

我创建了一个以对象为参数的函数

async function generatePDF(object) {
  let htmlContent = `
  <!DOCTYPE html>
<html>
  <head>
  <meta charset="UTF-8">
    <style>
      body,
      html {
        font-family: arial, sans-serif;
        color: rgb(46, 46, 46);
      }
    </style>
  </head>
  <body>
  <br />
  Date: ${object.todayDate}

  <div style="margin-top: 60px">
    <h3 style="border-top: 1px solid black">Dr. ${object.name} ${object.firstname}</h3>
  </div>
</html>
`;

下面是从创建的HTML文件生成PDF的代码:

    let sideMargin = "1.5cm";
    var options = {
      format: "A5",
      border: {
        top: "1.5cm", // default is 0, units: mm, cm, in, px
        right: sideMargin,
        bottom: "3.0cm",
        left: sideMargin,
      },
    };
    console.log(options);
    var path = require("path");
    var appDir = path.dirname(require.main.filename);

    let date = Date.now();
    let newPDF = `${appDir}/files/${date}new.pdf`;
    let newHTML = `${appDir}/files/${date}new.html`;

    htmlData["fileName"] = newHTML;
    console.log(`Generating new PDF '${newPDF}`);

    await generatePDF(htmlData);
    var html = fs.readFileSync(`${newHTML}`, "utf8");
    pdf.create(html, options).toFile(`${newPDF}`, function (err, res) {
      if (err) return console.log(err);
      console.log(res);
      r.sendFile(`${newPDF}`, (error) => {
        if (!error) {
          fs.unlinkSync(`${newPDF}`);
          fs.unlinkSync(`${newHTML}`);
        }
      });
    });

问题是,在我的机器上,本地的一切都很好,但在线PDF的文本大小要大得多,并且返回的不是一页而是两页(当然,我在HTML中设置的内容不是我想要的结果,它只是一个示例)。

共有1个答案

洪经义
2023-03-14

嘿,我找到问题了,这个问题还没有解决办法。接下来的工作是添加

html {
  zoom: 0.55;
}

对于CSS文件/代码,实际上存在一个未解决的问题。

 类似资料: