c# – NReco PDF在Azure上有黑色方块

c# – NReco PDF在Azure上有黑色方块,第1张

概述我使用NReco在Azure上生成PDF,它使用Wk HtmlToPdf.在我的本地服务器上,一切都很好.但是在Azure上,它会渲染所有带有黑色方块的字体. 我尝试过在网上找到的所有东西. 这是我的HTML: <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <style ty 我使用NReco在Azure上生成pdf,它使用Wk HtmlTopdf.在我的本地服务器上,一切都很好.但是在Azure上,它会渲染所有带有黑色方块的字体.

我尝试过在网上找到的所有东西.

这是我的HTML:

<head>    <Meta http-equiv="Content-Type" content="text/HTML; charset=UTF-8" />    <style type="text/CSS">        @@Font-face {            Font-family: "Freeserif";            src: url(@(httpContext.Current.Server.MapPath("~/Content/Freeserif.ttf"))) format("truetype");        }        * {            Font-family:"Freeserif",Helvetica,Arial,sans-serif;color:black;        }    </style></head>

我也尝试过使用Url.Content(“〜/ Content / Freeserif.ttf”)

而我的C#:

string HTMLText = RenderPartialVIEwToString("~/VIEws/Templates/pdf/ListpdfVIEw.csHTML",pdfList);HTMLtopdfconverter npdf = new HTMLtopdfconverter();npdf.Size = PageSize.Letter;npdf.OrIEntation = PageOrIEntation.Landscape;npdf.CustomWkHTMLArgs = "--enCoding UTF-8";pdfBuf = npdf.Generatepdf(HTMLText);Response.ContentType = "application/pdf";Response.ContentEnCoding = System.Text.EnCoding.UTF8;response.addheader("Content-disposition","Inline; filename=file.pdf");Response.BinaryWrite(pdfBuf);Response.Flush();Response.End();

我的web.config包含:

<system.webServer>    <staticContent>        <remove fileExtension=".ttf" />        <remove fileExtension=".svg" />        <remove fileExtension=".eot" />        <remove fileExtension=".woff" />        <mimeMap fileExtension=".ttf" mimeType="Font/truetype" />        <mimeMap fileExtension=".svg" mimeType="image/svg+xml"  />        <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-Fontobject" />        <mimeMap fileExtension=".woff" mimeType="application/x-woff" />    </staticContent></system.webServer>

每个解决方案都会产生黑色方块我在这里结束了我的智慧.非常感谢您的帮助.

解决方法 如果Azure意味着“Azure网站”,那么WkHTMLTopdf不支持它,这是 NReco.PdfGenerator page上提到的FAQ部分.
在您的情况下,似乎生成的pdf没有错误,但出现黑色方块,因为WkHTMLTopdf使用的windows GDI API在Azure WebSites中不起作用.

然而,pdfGenerator应该可以很好地用于Azure Webrole或Azure VM.
在这种情况下,Amazon EC2 T2微实例也是Azure WebSites的不错选择.

—更新—

目前,Azure应用程序(以前的网站)具有基于VM的订阅(除了“免费”和“共享”之外的所有计划),具有较少限制的托管环境,允许wkHTMLtopdf执行,并且在这种情况下可以使用NReco pdfGenerator包装器.请注意,仍然存在一些限制:例如,不呈现自定义字体(只能使用系统安装的字体).

总结

以上是内存溢出为你收集整理的c# – NReco PDF在Azure上有黑色方块全部内容,希望文章能够帮你解决c# – NReco PDF在Azure上有黑色方块所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1243937.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存