将长html转换为pdf的XMLWorkerHelper只生成第一页

时间:2013-06-26 14:38:26

标签: itextsharp

我使用以下代码转换长html并希望pdf跨越多个A4页面,具体取决于源html的长度。但它只生成适合A4页面的html文本的第一部分的第一个pdf页面。使用itextsharp 5.4.0

源HTML就是这样的

<html><body><table><tr><td>
<p> Para 1 -lorem ipsum ..... </p>
......
<p> Para 100 - loren ipsum .... </p>
</td></tr></table></body></html>

C#代码是

Document pdfDocument = new Document(PageSize.A4, 70, 55, 40, 25);
string sFileName = "output.pdf";
PdfWriter wri = PdfWriter.GetInstance(pdfDocument, new FileStream(sFilePath, FileMode.Create));
PdfWriter.GetInstance(pdfDocument, HttpContext.Current.Response.OutputStream);
pdfDocument.Open();
StreamReader fw = new StreamReader("D:\\sample\\avfs.html");
string htmlText = fw.ReadToEnd();
fw.Close();
XMLWorkerHelper.GetInstance().ParseXHtml(wri, pdfDocument, new StringReader(htmlText));
pdfDocument.Close();

1 个答案:

答案 0 :(得分:0)

使用

Document pdfDocument = new Document(**PageSize.LETTER**, 70, 55, 40, 25);

而不是

Document pdfDocument = new Document(**PageSize.A4**, 70, 55, 40, 25);