我使用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>
除了丢失图像外,一切看起来都很好......
欢迎任何想法!
答案 0 :(得分:4)
显然,答案是正确的项目网站/常见问题:
可以通过指定FULL URL或路径(如果它们位于本地文件系统上)来包含图像。还支持外部CSS和javascript文件。
答案 1 :(得分:2)
您必须提供图像的物理路径,您可以添加一个特定标记并替换如下。
htmlToPdf = htmlToPdf.Replace("[FancyImage]", Server.MapPath("~/img/FancyImage.jpg"));
我用我的语言做过你可以用你的语言做同样的事情。
答案 2 :(得分:0)
尝试将jpg转换为base64
示例:
<img src='<img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg=="' alt='Fancy Image' />