[转载]c#中使用ABCpdf处理PDF,so easy – 老赵【苏州】 – 博客园.
这几天项目中需要将页面导成PDF,刚开始使用iTextSharp,觉得在分页处理上比较复杂,后来无意中看到了ABCpdf,使用非常简单,并将一些常用操作记录下来,平时可以瞅瞅,也分享给大家伙们,废话不多说,直接贴代码。
<span class = "kwd" > using </span><span class = "pln" > </span><span class = "typ" >System</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > using </span><span class = "pln" > </span><span class = "typ" >System</span><span class = "pun" >.</span><span class = "typ" >Collections</span><span class = "pun" >.</span><span class = "typ" >Generic</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > using </span><span class = "pln" > </span><span class = "typ" >System</span><span class = "pun" >.</span><span class = "typ" >Linq</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > using </span><span class = "pln" > </span><span class = "typ" >System</span><span class = "pun" >.</span><span class = "typ" >Web</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > using </span><span class = "pln" > </span><span class = "typ" >System</span><span class = "pun" >.</span><span class = "typ" >Web</span><span class = "pun" >.</span><span class = "pln" >UI</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > using </span><span class = "pln" > </span><span class = "typ" >System</span><span class = "pun" >.</span><span class = "typ" >Web</span><span class = "pun" >.</span><span class = "pln" >UI</span><span class = "pun" >.</span><span class = "typ" >WebControls</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > using </span><span class = "pln" > </span><span class = "typ" >WebSupergoo</span><span class = "pun" >.</span><span class = "typ" >ABCpdf9</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > using </span><span class = "pln" > </span><span class = "typ" >System</span><span class = "pun" >.</span><span class = "typ" >Text</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > namespace </span><span class = "pln" > </span><span class = "typ" >ABCpdfTest</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "com" > /// <summary></span><span class="pln"> </span><span class = "com" > /// demo用的是当前的最新版本ABCpdf .NET 9.1 X64,支持当前windows的主流操作系统,包括最新的win8,IE10(服务器版本)</span><span class="pln"> </span><span class = "com" > /// ABCpdf有30天的试用期</span><span class="pln"> </span><span class = "com" > /// 引用方式,安装ABCpdf组件,有两个DLL是有用的,需要对ABCpdf.dll添加引用,ABCpdf9-64.dll(引擎组件)放在bin目录下就可以了</span><span class="pln"> </span><span class = "com" > /// 它有其他组件比如(iTextSharp)所不具备的功能,如能直接指定一个URL就可以将页面转换为PDF,这也是它的强大之处</span><span class="pln"> </span><span class = "com" > /// 在选择版本时要注意,区分64位和32位,如果版本放错了,会发生错误,在IIS的部署上一定要注意,这里很可能会出现问题,请参考官方资料</span><span class="pln"> </span><span class = "com" > /// 地址:http://www.websupergoo.com/support.htm 常见问题介绍的比较详细</span><span class="pln"> </span><span class = "com" > /// </summary></span><span class="pln"> </span><span class = "kwd" > public </span><span class = "pln" > </span><span class = "kwd" >partial</span><span class = "pln" > </span><span class = "kwd" > class </span><span class = "pln" > </span><span class = "typ" >Default</span><span class = "pln" > </span><span class = "pun" >:</span><span class = "pln" > </span><span class = "typ" >System</span><span class = "pun" >.</span><span class = "typ" >Web</span><span class = "pun" >.</span><span class = "pln" >UI</span><span class = "pun" >.</span><span class = "typ" >Page</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "kwd" > string </span><span class = "pln" > url </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "str" > "http://www.websupergoo.com/support.htm" </span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > private </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > </span><span class = "typ" >DownloadPDF</span><span class = "pun" >(</span><span class = "kwd" > string </span><span class = "pln" > fileName</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > byte </span><span class = "pun" >[]</span><span class = "pln" > buffer</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "typ" >Response</span><span class = "pun" >.</span><span class = "typ" >Buffer</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > false </span><span class = "pun" >;</span><span class = "pln" > </span><span class = "typ" >Response</span><span class = "pun" >.</span><span class = "typ" >AddHeader</span><span class = "pun" >(</span><span class = "str" > "Connection" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "Keep-Alive" </span><span class = "pun" >);</span><span class = "pln" > </span><span class = "typ" >Response</span><span class = "pun" >.</span><span class = "typ" >ContentType</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "str" > "application/octet-stream" </span><span class = "pun" >;</span><span class = "pln" > </span><span class = "typ" >Response</span><span class = "pun" >.</span><span class = "typ" >AddHeader</span><span class = "pun" >(</span><span class = "str" > "Content-Disposition" </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > "attachment;filename=" </span><span class = "pln" > </span><span class = "pun" >+</span><span class = "pln" > fileName</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "typ" >Response</span><span class = "pun" >.</span><span class = "typ" >AddHeader</span><span class = "pun" >(</span><span class = "str" > "Content-Length" </span><span class = "pun" >,</span><span class = "pln" > buffer</span><span class = "pun" >.</span><span class = "typ" >Length</span><span class = "pun" >.</span><span class = "typ" >ToString</span><span class = "pun" >());</span><span class = "pln" > </span><span class = "typ" >Response</span><span class = "pun" >.</span><span class = "typ" >BinaryWrite</span><span class = "pun" >(</span><span class = "pln" >buffer</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "kwd" > private </span><span class = "pln" > </span><span class = "kwd" > string </span><span class = "pln" > </span><span class = "typ" >GetFileName</span><span class = "pun" >()</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "kwd" > return </span><span class = "pln" > </span><span class = "typ" >DateTime</span><span class = "pun" >.</span><span class = "typ" >Now</span><span class = "pun" >.</span><span class = "typ" >ToString</span><span class = "pun" >(</span><span class = "str" > "yyyy-MM-dd-HH-mm-ss" </span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >+</span><span class = "pln" > </span><span class = "str" > ".pdf" </span><span class = "pun" >;</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "com" > /// <summary></span><span class="pln"> </span><span class = "com" > /// 指定URL生成PDF</span><span class="pln"> </span><span class = "com" > /// </summary></span><span class="pln"> </span><span class = "com" > /// <param name="sender"></param></span><span class="pln"> </span><span class = "com" > /// <param name="e"></param></span><span class="pln"> </span><span class = "kwd" > protected </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > </span><span class = "typ" >Button1_Click</span><span class = "pun" >(</span><span class = "kwd" > object </span><span class = "pln" > sender</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "typ" >EventArgs</span><span class = "pln" > e</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "kwd" > string </span><span class = "pln" > fileName </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "typ" >GetFileName</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "typ" >Doc</span><span class = "pln" > doc </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >Doc</span><span class = "pun" >();</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >Page</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >AddPage</span><span class = "pun" >();</span><span class = "com" > //新建一个页面</span><span class="pln"> doc</span><span class = "pun" >.</span><span class = "typ" >Rect</span><span class = "pun" >.</span><span class = "typ" >Inset</span><span class = "pun" >(</span><span class = "lit" >10</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >10</span><span class = "pun" >);</span><span class = "com" > //设置矩形边距</span><span class="pln"> </span><span class = "kwd" > int </span><span class = "pln" > id </span><span class = "pun" >=</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >AddImageUrl</span><span class = "pun" >(</span><span class = "pln" >url</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > true </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >800</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "kwd" > false </span><span class = "pun" >);</span><span class = "com" > //添加一个URL的页面返回一个页面ID</span><span class="pln"> </span><span class = "com" > //以下这段代码很重要,关系到分页,如果不写这段代码,就无法分页</span><span class="pln"> </span><span class = "kwd" > while </span><span class = "pln" > </span><span class = "pun" >(</span><span class = "kwd" > true </span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "com" > //这个判断应该是判断id是否是页面对象,如果不是,就跳出循环</span><span class="pln"> </span><span class = "kwd" > if </span><span class = "pln" > </span><span class = "pun" >(!</span><span class = "pln" >doc</span><span class = "pun" >.</span><span class = "typ" >Chainable</span><span class = "pun" >(</span><span class = "pln" >id</span><span class = "pun" >))</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "kwd" > break </span><span class = "pun" >;</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >Page</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >AddPage</span><span class = "pun" >();</span><span class = "pln" > id </span><span class = "pun" >=</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >AddImageToChain</span><span class = "pun" >(</span><span class = "pln" >id</span><span class = "pun" >);</span><span class = "com" > //这里是将这个可链接的对象ID添加到页面并返回一个id</span><span class="pln"> </span><span class = "pun" >}</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >Flatten</span><span class = "pun" >();</span><span class = "com" > //压缩pdf</span><span class="pln"> doc</span><span class = "pun" >.</span><span class = "typ" >Save</span><span class = "pun" >(</span><span class = "typ" >Server</span><span class = "pun" >.</span><span class = "typ" >MapPath</span><span class = "pun" >(</span><span class = "pln" >fileName</span><span class = "pun" >));</span><span class = "com" > //这里保存pdf到相对路径</span><span class="pln"> </span><span class = "com" > //你也你可以这样做把文件输出</span><span class="pln"> </span><span class = "kwd" > byte </span><span class = "pun" >[]</span><span class = "pln" > buffer </span><span class = "pun" >=</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >GetData</span><span class = "pun" >();</span><span class = "com" > //得到bytes[]</span><span class="pln"> </span><span class = "typ" >DownloadPDF</span><span class = "pun" >(</span><span class = "pln" >fileName</span><span class = "pun" >,</span><span class = "pln" > buffer</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "com" > /// <summary></span><span class="pln"> </span><span class = "com" > /// 自定义页面</span><span class="pln"> </span><span class = "com" > /// </summary></span><span class="pln"> </span><span class = "com" > /// <param name="sender"></param></span><span class="pln"> </span><span class = "com" > /// <param name="e"></param></span><span class="pln"> </span><span class = "kwd" > protected </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > </span><span class = "typ" >Button2_Click</span><span class = "pun" >(</span><span class = "kwd" > object </span><span class = "pln" > sender</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "typ" >EventArgs</span><span class = "pln" > e</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "kwd" > string </span><span class = "pln" > fileName </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "typ" >GetFileName</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "typ" >Doc</span><span class = "pln" > doc </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >Doc</span><span class = "pun" >();</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >Page</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >AddPage</span><span class = "pun" >();</span><span class = "com" > //新建一个页面</span><span class="pln"> doc</span><span class = "pun" >.</span><span class = "typ" >Rect</span><span class = "pun" >.</span><span class = "typ" >Inset</span><span class = "pun" >(</span><span class = "lit" >10</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >10</span><span class = "pun" >);</span><span class = "com" > //设置矩形边距,这里Rect是一个重要的对象,你也可以doc.Rect.String来设置属性</span><span class="pln"> doc</span><span class = "pun" >.</span><span class = "typ" >FontSize</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "lit" >24</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "com" > //设置默认字体大小</span><span class="pln"> doc</span><span class = "pun" >.</span><span class = "typ" >Color</span><span class = "pun" >.</span><span class = "typ" >String</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "str" > "89,89,254" </span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > int </span><span class = "pln" > id </span><span class = "pun" >=</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >AddText</span><span class = "pun" >(</span><span class = "str" > "Hello World!!!" </span><span class = "pun" >);</span><span class = "com" > //添加文字</span><span class="pln"> doc</span><span class = "pun" >.</span><span class = "typ" >FrameRect</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "com" > //添加边框操作</span><span class="pln"> doc</span><span class = "pun" >.</span><span class = "typ" >Save</span><span class = "pun" >(</span><span class = "typ" >Server</span><span class = "pun" >.</span><span class = "typ" >MapPath</span><span class = "pun" >(</span><span class = "pln" >fileName</span><span class = "pun" >));</span><span class = "pln" > </span><span class = "kwd" > byte </span><span class = "pun" >[]</span><span class = "pln" > buffer </span><span class = "pun" >=</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >GetData</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "typ" >DownloadPDF</span><span class = "pun" >(</span><span class = "pln" >fileName</span><span class = "pun" >,</span><span class = "pln" > buffer</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "com" > /// <summary></span><span class="pln"> </span><span class = "com" > /// 支持HTML元素</span><span class="pln"> </span><span class = "com" > /// </summary></span><span class="pln"> </span><span class = "com" > /// <param name="sender"></param></span><span class="pln"> </span><span class = "com" > /// <param name="e"></param></span><span class="pln"> </span><span class = "kwd" > protected </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > </span><span class = "typ" >Button3_Click</span><span class = "pun" >(</span><span class = "kwd" > object </span><span class = "pln" > sender</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "typ" >EventArgs</span><span class = "pln" > e</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "kwd" > string </span><span class = "pln" > fileName </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "typ" >GetFileName</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "typ" >Doc</span><span class = "pln" > doc </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >Doc</span><span class = "pun" >();</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >Page</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >AddPage</span><span class = "pun" >();</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >Rect</span><span class = "pun" >.</span><span class = "typ" >Inset</span><span class = "pun" >(</span><span class = "lit" >10</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >10</span><span class = "pun" >);</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >AddHtml</span><span class = "pun" >(</span><span class = "str" > "<h2>How to use the ABCpdf</h2>" </span><span class = "pun" >);</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >AddHtml</span><span class = "pun" >(</span><span class = "str" > "<hr>" </span><span class = "pun" >);</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >AddHtml</span><span class = "pun" >(@</span><span class = "str" >"<p>Use ABCpdf to create Adobe PDF documents on the fly. You won't believe how simple - yet how powerful it truly is . Find out more... If you 've been using Version 8 you' ll love Version 9. It includes many powerful new features designed to make your life easier. Find out more... or check out our Feature Chart... ABCpdf .NET is a .NET Native product encapsulated in an easy-to-deploy set of DLLs. It also offers a virtualized COM interface designed for backwards compatibility with ABCpdf ASP and Classic ASP/COM. ABCpdf is normally priced from $329. However as a special offer we'll give you a free license key - all you have to do is link back to our web site. For full details check out our link guidelines...</p> "</span><span class=" pun ">);</span><span class=" pln"> </span><span class = "com" > //这里是不是很神奇,html都支持,很灵活,赞一个</span><span class="pln"> doc</span><span class = "pun" >.</span><span class = "typ" >Save</span><span class = "pun" >(</span><span class = "typ" >Server</span><span class = "pun" >.</span><span class = "typ" >MapPath</span><span class = "pun" >(</span><span class = "pln" >fileName</span><span class = "pun" >));</span><span class = "pln" > </span><span class = "kwd" > byte </span><span class = "pun" >[]</span><span class = "pln" > buffer </span><span class = "pun" >=</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >GetData</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "typ" >DownloadPDF</span><span class = "pun" >(</span><span class = "pln" >fileName</span><span class = "pun" >,</span><span class = "pln" > buffer</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "com" > /// <summary></span><span class="pln"> </span><span class = "com" > /// 自定义页眉页脚</span><span class="pln"> </span><span class = "com" > /// </summary></span><span class="pln"> </span><span class = "com" > /// <param name="sender"></param></span><span class="pln"> </span><span class = "com" > /// <param name="e"></param></span><span class="pln"> </span><span class = "kwd" > protected </span><span class = "pln" > </span><span class = "kwd" > void </span><span class = "pln" > </span><span class = "typ" >Button4_Click</span><span class = "pun" >(</span><span class = "kwd" > object </span><span class = "pln" > sender</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "typ" >EventArgs</span><span class = "pln" > e</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "kwd" > string </span><span class = "pln" > fileName </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "typ" >GetFileName</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "typ" >Doc</span><span class = "pln" > doc </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" > new </span><span class = "pln" > </span><span class = "typ" >Doc</span><span class = "pun" >();</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >Page</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >AddPage</span><span class = "pun" >();</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >Rect</span><span class = "pun" >.</span><span class = "typ" >Inset</span><span class = "pun" >(</span><span class = "lit" >20</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >40</span><span class = "pun" >);</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >AddHtml</span><span class = "pun" >(</span><span class = "str" > "<h2>How to use the ABCpdf</h2>" </span><span class = "pun" >);</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >AddHtml</span><span class = "pun" >(</span><span class = "str" > "<hr>" </span><span class = "pun" >);</span><span class = "pln" > </span><span class = "com" > //自定义页眉</span><span class="pln"> doc</span><span class = "pun" >.</span><span class = "typ" >Rect</span><span class = "pun" >.</span><span class = "typ" >String</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "str" > "24 750 588 778" </span><span class = "pun" >;</span><span class = "pln" > </span><span class = "com" > //记得这里要定位哦</span><span class="pln"> doc</span><span class = "pun" >.</span><span class = "typ" >HPos</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "lit" >0</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "com" > //居中, 0代表居左, 1代表居右</span><span class="pln"> doc</span><span class = "pun" >.</span><span class = "typ" >VPos</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "lit" >0.5</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "com" > //居中, 0代表靠上, 1代表靠下</span><span class="pln"> doc</span><span class = "pun" >.</span><span class = "typ" >Color</span><span class = "pun" >.</span><span class = "typ" >String</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "str" > "blue" </span><span class = "pun" >;</span><span class = "pln" > </span><span class = "com" > //蓝色</span><span class="pln"> </span><span class = "kwd" > for </span><span class = "pln" > </span><span class = "pun" >(</span><span class = "kwd" > int </span><span class = "pln" > i </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "lit" >1</span><span class = "pun" >;</span><span class = "pln" > i </span><span class = "pun" ><=</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >PageCount</span><span class = "pun" >;</span><span class = "pln" > i</span><span class = "pun" >++)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >PageNumber</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > i</span><span class = "pun" >;</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >AddHtml</span><span class = "pun" >(</span><span class = "str" > "<b><font>" </span><span class = "pln" > </span><span class = "pun" >+</span><span class = "pln" > </span><span class = "str" > "Laozhao learn ABCpdf,Save time for" </span><span class = "pln" > </span><span class = "pun" >+</span><span class = "pln" > </span><span class = "typ" >DateTime</span><span class = "pun" >.</span><span class = "typ" >Now</span><span class = "pun" >.</span><span class = "typ" >ToString</span><span class = "pun" >()</span><span class = "pln" > </span><span class = "pun" >+</span><span class = "pln" > </span><span class = "str" > "</font></b>" </span><span class = "pun" >);</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >AddLine</span><span class = "pun" >(</span><span class = "lit" >24</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >750</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >588</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >750</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "com" > //画一条分隔线</span><span class="pln"> </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "com" > //页脚</span><span class="pln"> doc</span><span class = "pun" >.</span><span class = "typ" >Rect</span><span class = "pun" >.</span><span class = "typ" >String</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "str" > "24 12 588 40" </span><span class = "pun" >;</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >HPos</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "lit" >1.0</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "com" > //Right</span><span class="pln"> doc</span><span class = "pun" >.</span><span class = "typ" >VPos</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "lit" >0.5</span><span class = "pun" >;</span><span class = "pln" > </span><span class = "com" > //Middle</span><span class="pln"> doc</span><span class = "pun" >.</span><span class = "typ" >Color</span><span class = "pun" >.</span><span class = "typ" >String</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "str" > "black" </span><span class = "pun" >;</span><span class = "pln" > </span><span class = "kwd" > for </span><span class = "pln" > </span><span class = "pun" >(</span><span class = "kwd" > int </span><span class = "pln" > i </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "lit" >1</span><span class = "pun" >;</span><span class = "pln" > i </span><span class = "pun" ><=</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >PageCount</span><span class = "pun" >;</span><span class = "pln" > i</span><span class = "pun" >++)</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >PageNumber</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > i</span><span class = "pun" >;</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >AddHtml</span><span class = "pun" >(</span><span class = "str" > "<u>Page:</u> " </span><span class = "pln" > </span><span class = "pun" >+</span><span class = "pln" > i</span><span class = "pun" >.</span><span class = "typ" >ToString</span><span class = "pun" >()</span><span class = "pln" > </span><span class = "pun" >+</span><span class = "pln" > </span><span class = "str" > " / " </span><span class = "pln" > </span><span class = "pun" >+</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >PageCount</span><span class = "pun" >.</span><span class = "typ" >ToString</span><span class = "pun" >());</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >AddLine</span><span class = "pun" >(</span><span class = "lit" >24</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >40</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >588</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >40</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >Save</span><span class = "pun" >(</span><span class = "typ" >Server</span><span class = "pun" >.</span><span class = "typ" >MapPath</span><span class = "pun" >(</span><span class = "pln" >fileName</span><span class = "pun" >));</span><span class = "pln" > </span><span class = "kwd" > byte </span><span class = "pun" >[]</span><span class = "pln" > buffer </span><span class = "pun" >=</span><span class = "pln" > doc</span><span class = "pun" >.</span><span class = "typ" >GetData</span><span class = "pun" >();</span><span class = "pln" > </span><span class = "typ" >DownloadPDF</span><span class = "pun" >(</span><span class = "pln" >fileName</span><span class = "pun" >,</span><span class = "pln" > buffer</span><span class = "pun" >);</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "com" > /* * Doc还支持AddImageHtml * 参数说明; * html 需要添加的html * paged 是否分页,true启用分页 * width 页面的宽度(浏览器解析html时浏览器的宽度) * disableCache 是否忽略缓存,true不启用缓存,false启用缓存 */ </span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > </span><span class = "pun" >}</span> |