当前位置:  开发笔记 > 编程语言 > 正文

abcPDF 7将HTML转换为PDF但仅转换第一页

如何解决《abcPDF7将HTML转换为PDF但仅转换第一页》经验,为你挑选了2个好方法。

我目前正在使用abcPDF 7将HTML转换为PDF.这是通过ASPX页面完成的,我覆盖了Render方法.

Doc theDoc = new Doc();
theDoc.SetInfo(0, "License", m_License );
theDoc.HtmlOptions.Paged = true;
theDoc.HtmlOptions.Timeout = 1000000;

string callUrl = "http:// my app page";
theDoc.AddImageUrl(callUrl);
Response.Clear();

Response.Cache.SetCacheability(HttpCacheability.Private);
Response.AddHeader("Content-Disposition", "attachment; filename=" + sFile + ".pdf");
Response.ContentType = "application/octet-stream";

theDoc.Save(Response.OutputStream);

Response.Flush();

这适用于第一页,但随后截断页面并且不会继续呈现剩余的页面.

有人知道为什么它会在页面后停止吗?



1> 小智..:

我有同样的问题.答案是使用链接,但上一个答案中提供的页面并不能准确地告诉您如何执行此操作.这是我网站上的一个例子:请注意,变量htmlOutput是我的对象中的一个变量,它接受我要渲染的htmlOutput.我收集这些从网页要么只需按下HTML直接插入变量,或者如果其当前页面,我运行受保护的覆盖无效渲染(HtmlTextWriter的输出)的页面,推的渲染到这个htmlOutput变量的内容.

Doc theDoc = new Doc();
int theID;
theDoc.Page = theDoc.AddPage();

theID = theDoc.AddImageHtml(htmlOutput);

 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();
  }
  //reset back to page 1 so the pdf starts displaying there
  if(theDoc.PageCount > 0)
       theDoc.PageNumber = 1;

  //now get your pdf content from the document
  byte[] theData = theDoc.GetData();



2> schnaader..:

"只绘制文档的第一页.可以使用AddImageToChain方法绘制后续页面."

从这里开始

可以在此处找到如何使用AddImageToChain的示例

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有