最近做一个项目,客户需要将html静态页面转成pdf格式,供打印使用。
客户希望可以自己控制打印的纸张大小和打印方向(横向和纵向)
使用的一个工具就是abcpdf,客户要求简略如下
1.使用document.documentElement.abcpdf =“lplplp_34523”属性控制整个文件的纸张。[l]表示横向。[p]表示纵向。[数字]表示a2,a3的纸张。
上例表示第一张用a3的纸张横向打印,第二张的用a4的纸张纵向打印,以此类推。。。
这个可以用string allLinks = theDoc.HtmlOptions.GetScriptReturn(theID);来取得js中设置的值来控制。比较容易实现
2.可以在html文件中加入css样式来控制下一页的纸张大小和方向。
如:<div id="div01p_3" style="abcpdf-tag-visible: true;page-break-before:alway">
表示下一页用a3的纸纵向打印。
这个值可以使用string[] tagIds = theDoc.HtmlOptions.GetTagIDs(id);来获取。
但是我在测试的时候发现使用这个函数并不能找到当前页的有【abcpdf-tag-visible: true】的id。
但是我在查文档有一句话:
Note that only HTML elements which have an actual visual representation in the final output will be tagged
只有设了abcpdf-tag-visible: true的可见元素才能取得到值。也就是说在web浏览器中不显示的元素娶不到值。比如 空的div标签
所以设置属性的标签应该如下所示:
<div id="div01p_3" style="abcpdf-tag-visible: true;page-break-before:alway"> </div>
这样就能取到值了。
文档的说明连接如下:
http://www.websupergoo.com/helppdf9net/source/5-abcpdf/xhtmloptions/2-properties/addtags.htm
转载于:https://blog.51cto.com/fengqingtian/1182922