【发布时间】:2019-08-26 08:09:48
【问题描述】:
我正在尝试使用 iTextSharp 将 HTML 转换为 PDF。 这是我的功能:
public static Byte[] ConvertToPdf_iTextSharp(string html)
{
Byte[] res;
StringReader sr = new StringReader(html);
Document pdfDoc = new Document(PageSize.A4);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
using (MemoryStream memoryStream = new MemoryStream())
{
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, memoryStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
res = memoryStream.ToArray();
memoryStream.Close();
}
return res;
}
HTMLWorker htmlparser = new HTMLWorker(pdfDoc); 出现错误
错误是:远程服务器返回错误:(401) Unauthorized。
我发现问题出在我的 HTML 中有图像时。
图片是标准的html标签<img src="http://mywebsite/images/some.png" />
我发现,如果我“强制”本地路径名(类似于 <img src="c:/inetpub/wwwroot/mysite/images/some.png" />),它会起作用。
可能是什么问题?
谢谢
【问题讨论】:
-
网站上的图片是否需要登录才能访问?当您通过浏览器访问它们时,您的 cookie 中存储了您的身份验证信息。当您通过 iTextSharp 访问它们时,您不会。
-
图片在同一个网络服务器上
-
我不明白这如何回答我的问题。如果您打开一个新的隐身窗口并尝试访问图像,它会允许您登录还是需要登录?
-
感谢您之前的问题,我解决了:问题是身份验证问题。我将图像移动到另一个站点下(启用了匿名访问),现在一切正常...谢谢
-
很高兴为您提供帮助。我添加了评论作为对您问题的回答。如果对您有帮助,请将答案标记为已接受。