iTextSharp:无法创建 PDF。为什么?
iTextSharp: impossible to create PDF. Why?
我正在尝试使用 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) 未经授权。
我发现问题出在我的 HTML 中有图像。
图片是标准的 html 标签 <img src="http://mywebsite/images/some.png" />
我发现如果我 "force" 本地路径名(类似 <img src="c:/inetpub/wwwroot/mysite/images/some.png" />
的东西)就可以了。
可能是什么问题?
谢谢
这听起来像是身份验证问题。您能否验证图像是否托管在不需要您登录的网站上?最简单的检查方法是打开一个新的隐身 window 并尝试访问图像。如果您收到访问被拒绝的页面,您就知道问题所在了。
要修复它,请将图像移动到不需要身份验证的站点,或者使用您的站点登录凭据设置 iTextSharp。
我正在尝试使用 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) 未经授权。
我发现问题出在我的 HTML 中有图像。
图片是标准的 html 标签 <img src="http://mywebsite/images/some.png" />
我发现如果我 "force" 本地路径名(类似 <img src="c:/inetpub/wwwroot/mysite/images/some.png" />
的东西)就可以了。
可能是什么问题?
谢谢
这听起来像是身份验证问题。您能否验证图像是否托管在不需要您登录的网站上?最简单的检查方法是打开一个新的隐身 window 并尝试访问图像。如果您收到访问被拒绝的页面,您就知道问题所在了。
要修复它,请将图像移动到不需要身份验证的站点,或者使用您的站点登录凭据设置 iTextSharp。