折騰了一天的匯出報表工作,最終還是用了jspdf外掛程式,路程雖為坎坷,但是學習了不少。
首先,頁面中有**,有echart圖表,初步嘗試jspdf 匯出會有部分缺失,失敗了。考慮用
window.print(),雖然原始,但是很好用。
優點:1、有滾動條,滾動條以下內容也可列印。
2、列印出來排版正常,樣式不會丟失。
缺點:eachart 圖表,沒能被列印。(樣例**如下)
解決echart圖表未被列印問題,也就是在列印之前將echart圖表,轉換為,還好echart有介面可以實現。
define(function非常完美的將圖表轉換為了!然後列印,ok!可以問題又來了,為毛它列印出來,說什麼就是不分頁了呢?只要超出一頁部分就不可以列印了。嗚嗚。。。。(require,exports,module)
//將echart生成並放入img-box,並顯示img-box
var mychart=param.chartobj;
$imgbox.html('
').css('display','block');
//隱藏echart圖chart-box
$chartbox.css('display','none');
//調整img大小
var $img = $imgbox.find('img');
var imgwidth =$img.width();
var showwidth = "500"; //
顯示寬度,即縮小到的寬度
if (imgwidth > showwidth) );
}}exports.printreport =printreport;
});/*
*呼叫時傳引數,echart物件,echart初始化的div的id
*/var param=
繼續解決不分頁的問題:
";完美的分頁了。然而,興高采烈的用到專案中。。。。。。尼瑪! 我的**樣式怎麼沒有了!!!var content = "";
var str = document.getelementbyid('page1').innerhtml; //獲取需要列印的頁面元素 ,page1元素設定樣式page-break-after:always,意思是從下一行開始分割。
content = content + str;
str = document.getelementbyid('page2').innerhtml; //獲取需要列印的頁面元素
content = content + str;
printstr = printstr+content+"
"; var pwin=window.open("print.htm","print"); //如果是本地測試,需要先新建print.htm,如果是在域中使用,則不需要
pwin.document.write(printstr);
pwin.document.close(); //這句很重要,沒有就無法實現
pwin.print();
}第一頁列印內容
第二頁列印內容
好吧,若頁面圖表列印,無複雜樣式列印,window.print() 還是個不錯的選擇,然而,需求是匯出報表,好像不太一樣啊!
下篇繼續研究jspdf 匯出。
網頁內容抓取
之前採用xpath和正規表示式對網頁內容進行抓取,發現在有的地方不如人意,就採用了htmlparser對頁面進行解析,抓取需要的東西。htmlparser有點不好的地方在於不能對starttag和endtag進行匹配。採用了兩種方法進行抓取。第一種,抓取成對的tag之間的內容,採用了queue.qu...
定位網頁內容
模擬瀏覽器訪問後,解析定位網頁內容 from lxml import etree 匯入解析包 responsehtml requests.post url,data,headers xxheaders 此處簡寫post請求 parser etree.html responsehtml.text 使用...
C 網頁匯出PDF
注意 在cpechkin使用的時候 目標平台必須使用x86 設定邊緣距離 setmargins new margins 100,100,100,100 獲取網頁上的資料 byte buf sc.convert new uri pdf 儲存的路徑 string fn d pechkintest.pdf...