在LODOP中,超文本超過打印項高度會自動分頁,自動分頁有兩種情況:超過設置的打印項高度,超過紙張。
這里是指高度,超過紙張寬度的超文本不會顯示,會隱藏掉。
如果你不了解什么是LODOP中的超文本打印項,什么是LODOP中的純文本打印項,可查看本博客相關介紹博文:
因為超文本超打印項高度或紙張高度,會自動分頁,這個是是無法去掉的,所以以下三種方法只是變通實現。
如何只打印一頁:
1.縮放,整頁縮放或高度溢出縮放。
2.如果沒有表格項,把內容放到ADD_PRINT_TABLE的一個單元格中。
3.后面的都不打印,不預覽的情況下,設置只打印第一頁。(這種情況是自動分頁了,但是因為是不預覽,所以打印出來只有第一頁),如果預覽,那么會是整個任務,不只是第一頁。
這三個方法前面對應都有博文介紹:
1.整頁縮放和高度溢出縮放
LODOP整頁縮放,寬度、高度溢出縮放
2.放入一個ADD_PRINT_TABLE的一個單元格TD中
LODOP中ADD_PRINT_TABLE、HTM、HTML表格自動分頁測試
3.設置代言該任務的第一頁
Lodop打印控件指定打印任務某幾頁
如上述三個博文的介紹,第二個放入一個ADD_PRINT_TABLE的一個單元格TD中,上面那個博文可以看出,ADD_PRINT_TABLE不斷行,這里輸出一頁的方法,就是如果內容沒有table表格等,只是普通的超文本,可以把超文本內容放到一個table標簽里,這個table只有一個單元格,上述第二個博文是兩個單元格,所以分頁了,第二頁是第二個單元格,如果沒有第二個單元格,那么第一頁的那個表格超過紙張高度的部分,就會隱藏,沒有第二頁。
例如,如下的例子,正常情況下該超文本超過紙張會自動分頁,但是放入一個table的td中,並用ADD_PRINT_TABLE輸出,就不會超過紙張分頁,原理就是利用ADD_PRINT_TABLE不切行的特征。
代碼:(由於超文本代碼太長,用省略號省略中間部分)
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>WEB打印控件LODOP</title> <script language="javascript" src="LodopFuncs.js"></script> </head> <body> <a href="javascript:prn1_preview()">打印預覽</a><br> <a href="javascript:prn2_preview()">打印預覽2</a><br> <script language="javascript" type="text/javascript"> var LODOP; //聲明為全局變量 function prn1_preview() { LODOP=getLodop(); LODOP.PRINT_INIT(""); LODOP.ADD_PRINT_TABLE(0,0,"100%","100%","省略超文本"); //LODOP.PRINT_DESIGN(); LODOP.PREVIEW(); }; function prn2_preview() { LODOP=getLodop(); LODOP.PRINT_INIT(""); LODOP.ADD_PRINT_HTM(0,0,"100%","100%","省略超文本"); //LODOP.PRINT_DESIGN(); LODOP.PREVIEW(); }; </script> </body>
圖示:

如圖,同樣的超文本,超過了紙張的高度,ADD_PRINT_HTM會自動分頁,而把該超文本放入ADD_PRINT_TABLE的一個td中,就會發現超過紙張高度的超文本內容沒有輸出。
默認超文本超過打印項高度,和紙張高度,是會自動分頁的。上述三個方法,只是變通實現超過紙張隱藏后面的超文本。
這種需求應該很少吧,畢竟如果只打一頁,超出的部分不打,那么數據就打不全了,如果縮放,那么又會變形,估計很少用到,但是既然有人有這個需求,還是試驗了幾個方法。
