【问题标题】:How can I add images to a PDF created with Nreco PdfGenrator如何将图像添加到使用 Nreco PdfGenrator 创建的 PDF
【发布时间】:2025-12-06 14:35:01
【问题描述】:

我正在使用Nreco PDFGenerator 使用以下 PowerShell 脚本生成 PDF:

$PdfGenerator = "$((Get-Location).Path)\lib\NReco.PdfGenerator.dll"
$Assembly = [Reflection.Assembly]::LoadFrom($PdfGenerator)
$PdfCreator = New-Object NReco.PdfGenerator.HtmlToPdfConverter

$PdfCreator.PageHeight = 297
$PdfCreator.PageWidth = 210
$PdfCreator.Zoom = 2
$pdfBytes = $PdfCreator.GeneratePdf([string](gc myhtml.htm))
Add-Content -Value $pdfBytes -Encoding byte -Path "./mypdf.pdf"

myhtml.htm 是一个简单的 HTML 文档:

<html>
  <head>
    <title>Hello World</title>
  <body>
    <img src='./img/FancyImage.jpg' alt='Fancy Image' />
  </body>
</html>

一切看起来都很好,只是图像丢失了......

欢迎提出任何想法!

【问题讨论】:

    标签: powershell pdf-generation


    【解决方案1】:

    显然,项目网站/常见问题解答中的答案是正确的:

    可以通过指定图像的完整 URL 或路径(如果它们在本地文件系统上)来包含图像。还支持外部 CSS 和 javascript 文件。

    【讨论】:

      【解决方案2】:

      您必须提供图像的物理路径,您可以添加一个特定的标签并替换如下。

      htmlToPdf = htmlToPdf.Replace("[FancyImage]", Server.MapPath("~/img/FancyImage.jpg"));
      

      我用我的语言做了,你可以用你的语言做同样的事情。

      【讨论】:

        【解决方案3】:

        尝试将jpg转换为base64

        例子

        <img src='<img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUA
        AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
            9TXL0Y4OHwAAAABJRU5ErkJggg=="' alt='Fancy Image' />
        

        【讨论】: