[转载]c#中使用ABCpdf处理PDF,so easy - 老赵【苏州】 - 博客园

[转载]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">/// 官方网站:http://www.websupergoo.com/</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>
赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

登录

注册