4

我处理动态输入文本,所以页面应该是动态创建的。如果第 1 页已经满了,它应该写入一个新页面,所以这意味着我可以根据处理的数据有第 2 页、第 3 页等等。

目前,我的文本被截断。只写第1页,其余数据不写。

我当前的代码如下:

//add page 1
theDoc.Page = theDoc.AddPage();
theDoc.AddImageHtml(html, true, 826, true);

//continue adding page if needed                             
while (theDoc.GetInfo(theID, "Truncated") == "1")
{
   theDoc.Page = theDoc.AddPage();
   theDoc.AddImageHtml(html, true, 826, true);
}

//save file
String pdfFilePath = WebConfigurationManager.AppSettings["pdfFilePath"];
Guid fileName = Guid.NewGuid();
pdfLink = pdfFilePath + fileName.ToString() + ".pdf";
theDoc.Save(pdfLink);
theDoc.Clear();

变量 html 包含所有数据(网页),我可能在我的 while 循环中遗漏了一些东西。任何帮助表示赞赏!谢谢

4

1 回答 1

4
Found it, Use Chainable and then Flatten()

theDoc.Page = theDoc.AddPage();
int theID;
theID = theDoc.AddImageUrl("http://www.yahoo.com/");

while (true) {
theDoc.FrameRect(); // add a black border
if (!theDoc.Chainable(theID))
  break;
theDoc.Page = theDoc.AddPage();
theID = theDoc.AddImageToChain(theID);
}

for (int i = 1; i <= theDoc.PageCount; i++) {
   theDoc.PageNumber = i;
  theDoc.Flatten();
}
于 2014-05-08T21:52:31.240 回答