![](/img/trans.png)
[英]PDF pages are blank after setting password for existing PDF using iTextSharp
[英]iTextSharp creates PDF with blank pages
我刚刚将iTextSharp XMLWorker nuget包(及其依赖项)添加到了我的项目,并且我试图将HTML从字符串转换为PDF文件,即使没有引发异常,该PDF文件也是通过以下方式生成的:两个空白页。 为什么?
以前的代码版本仅将iTextSharp 5.5.8.0和HTMLWorker和ParseList方法一起使用,然后切换到
这是我正在使用的代码:
public void ExportToPdf() {
string htmlString = "";
Document document = new Document(PageSize.A4, 40, 40, 40, 40);
var memoryStream = new MemoryStream();
PdfWriter writer = PdfWriter.GetInstance(document, memoryStream);
document.Open();
htmlString = sbBodyMail.ToString();
XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, new StringReader(htmlString));
document.Close();
DownloadFile(memoryStream);
}
public void DownloadFile(MemoryStream memoryStream) {
//Clears all content output from Buffer Stream
Response.ClearContent();
//Clears all headers from Buffer Stream
Response.ClearHeaders();
//Adds an HTTP header to the output stream
Response.AddHeader("Content-Disposition", "attachment;filename=Report_Diagnosis.pdf");
//Gets or Sets the HTTP MIME type of the output stream
Response.ContentType = "application/pdf";
//Writes the content of the specified file directory to an HTTP response output stream as a file block
Response.BinaryWrite(memoryStream.ToArray());
//Response.Write(doc);
//sends all currently buffered output to the client
Response.Flush();
//Clears all content output from Buffer Stream
Response.Clear();
}
如果我放置document.Add(new Paragraph("Just a test"));
就在document.Close();
之前document.Close();
该段落显示在第二页中,但文档的其余部分仍为空白。
我已经将htmlString
变量中的HTML更改为一个DIV
和一个TABLE
并且它起作用了。 因此,现在的问题变成了:我怎么知道HTML的哪一部分在XMLWorker中引起了一些错误?
我发现XMLWorkerHelper在DIV
width属性(甚至在style属性上设置)上遇到了麻烦,不幸的是,它没有抛出任何异常来帮助您。
我从iTextSharp的开发人员那里找到了这个答案,它说尚不支持将表格居中,因此我假设也不支持此功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.