CN114969611B 網(wǎng)頁打印方法、裝置、設備及介質 (中國工商銀行股份有限公司)_第1頁
CN114969611B 網(wǎng)頁打印方法、裝置、設備及介質 (中國工商銀行股份有限公司)_第2頁
CN114969611B 網(wǎng)頁打印方法、裝置、設備及介質 (中國工商銀行股份有限公司)_第3頁
CN114969611B 網(wǎng)頁打印方法、裝置、設備及介質 (中國工商銀行股份有限公司)_第4頁
CN114969611B 網(wǎng)頁打印方法、裝置、設備及介質 (中國工商銀行股份有限公司)_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

(19)國家知識產權局(12)發(fā)明專利(10)授權公告號CN114969611B(65)同一申請的已公布的文獻號審查員胡婷婷(73)專利權人中國工商銀行股份有限公司地址100140北京市西城區(qū)復興門內大街55號(72)發(fā)明人楊再同吳俊軼(74)專利代理機構中科專利商標代理有限責任公司11021專利代理師趙婷本公開提供了一種網(wǎng)頁打印方法,可以應用于金融領域或其他領域。該方法包括:獲取目標頁面的尺寸和打印紙的尺寸;當按照規(guī)定的最小縮放比例縮放后的所述目標頁面不能打印在在一頁所述打印紙內時,裁剪所述目標頁面以得到N個圖片對象,其中,每個圖片對象適合于打印在一頁所述打印紙內,所述N個圖片對象能夠拼接重新排版并渲染所述N個圖片對象,以形成一個待打印圖像序列;以及打印所述待打印圖像序否2獲取目標頁面的尺寸和打印紙的尺寸;當按照規(guī)定的最小縮放比例縮放后的所述目標頁面不能打印在在一頁所述打印紙內時,裁剪所述目標頁面以得到N個圖片對象,其中,每個圖片對象適合于打印在一頁所述打是基于所述目標頁面的尺寸、所述打印紙的尺寸以及預設的打印縮放比例確定的;重新排版并渲染所述N個圖片對象,以形成一個待打印圖像序列;以及打印所述待打印圖像序列。2.根據(jù)權利要求1所述的方法,其中,所述裁剪所述目標頁面以得到N個圖片對象包括:獲取所述N個圖片對象的統(tǒng)一資源定位符URL。3.根據(jù)權利要求2所述的方法,其中,所述重新排版并渲染所述N個圖片對象,以形成一個待打印圖像序列包括:在DIV容器中排列基于所述N個圖片對象的URL確定的N個圖像標簽;以及渲染所述DIV容器中的所述N個圖像標簽,以得到所述待打印圖像序列。4.根據(jù)權利要求2所述的方法,其中,所述使用canvas裁剪所述目標頁面包括:基于所述目標頁面的尺寸、所述打印紙的尺寸以及預設的打印縮放比例,確定裁剪出的圖像對象的個數(shù)N;基于每次截圖的尺寸以及剪裁出的圖像對象的個數(shù)N,計算每次從所述目標頁面中進遍歷N次,每次從所述目標頁面中以所述起點坐標為起點,按照每次截圖的尺寸截取畫面,并按照所述打印縮放比例縮放后繪制到canvas畫布中。5.根據(jù)權利要求4所述的方法,所述基于所述目標頁面的尺寸、所述打印紙的尺寸以及預設的打印縮放比例,確定裁剪出的圖像對象的個數(shù)N包括:將所述目標頁面的橫向尺寸乘以所述打印縮放比例,然后對所述打印紙的橫向尺寸向將所述目標頁面的縱向尺寸乘以所述打印縮放比例,然后對所述打印紙的縱向尺寸向基于所述橫向裁剪數(shù)量m和所述縱向裁剪數(shù)量n的乘積,得到N的值?;谒瞿繕隧撁娴某叽绾退龃蛴〖埖某叽绲谋戎?,獲取能夠在一頁打印紙內打印所述目標頁面時的全局縮放比例;以及若所述全局縮放比例小于所述最小縮放比例,確定按照所述最小縮放比例縮放后的所述目標頁面不能打印在在一頁所述打印紙內。7.根據(jù)權利要求1所述的方法,其中,所述打印所述待打印圖像序列包括:調用window.print()打印所述待打印圖像序列。獲取模塊,用于獲取目標頁面的尺寸和打印紙的尺寸;剪裁模塊,用于當按照規(guī)定的最小縮放比例縮放后的所述目標頁面不能打印在在一頁3所述打印紙內時,裁剪所述目標頁面以得到N個圖片對象,其中,每個圖片對象適合于打印在一頁所述打印紙內,所述N個圖片對象能夠拼接出所述目標頁面的畫面,其中,N為大于1的整數(shù);所述N是基于所述目標頁面的尺寸、所述打印紙的尺寸以及預設的打印縮放比例確定的;重排版模塊,用于重新排版并渲染所述N個圖片對象,以形成一個待打印圖像序列;以及分頁打印模塊,用于打印所述待打印圖像序列。9.一種電子設備,包括:一個或多個處理器;存儲裝置,用于存儲一個或多個程序,其中,當所述一個或多個程序被所述一個或多個處理器執(zhí)行時,使得所述一個或多個處理器執(zhí)行根據(jù)權利要求1~7中任一項所述的方法。10.一種計算機可讀存儲介質,其上存儲有可執(zhí)行指令,該指令被處理器執(zhí)行時使處理器執(zhí)行根據(jù)權利要求1~7中任一項所述的方法。11.一種計算機程序產品,包括計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)根據(jù)權利要求1~7中任一項所述的方法。4網(wǎng)頁打印方法、裝置、設備及介質技術領域[0001]本公開涉及互聯(lián)網(wǎng)技術領域,可用于金融領域或其他領域,更具體地涉及一種網(wǎng)背景技術[0002]在實際項目中,經(jīng)常會遇到一些需打印網(wǎng)頁的需求,例如打印在前端展示的報表頁面等。相關技術中,在打印前端頁面時可以通過調用瀏覽器自帶的window.print()打印方法來實現(xiàn)。其中,調用window.print()打印方法實質上是對瀏覽器打印功能菜單的一種程序調用,與點擊打印功能菜單一樣,往往只能對當前窗口顯示的頁面部分進行打印。如果網(wǎng)頁不能在當前窗口內完全展示時,就會導致僅能夠打印出頁面的局部。發(fā)明內容[0003]鑒于上述問題,本公開提供了一種可以將一個網(wǎng)頁精確分為多個圖像,并逐一打[0004]根據(jù)本公開實施例的第一方面,提供了一種網(wǎng)頁打印方法。所述方法包括:獲取目標頁面的尺寸和打印紙的尺寸;當按照規(guī)定的最小縮放比例縮放后的所述目標頁面不能打印在在一頁所述打印紙內時,裁剪所述目標頁面以得到N個圖片對象,其中,每個圖片對象適合于打印在一頁所述打印紙內,所述N個圖片對象能夠拼接出所述目標頁面的畫面,其打印所述待打印圖像序列。[0005]根據(jù)本公開的實施例,所述裁剪所述目標頁面以得到N個圖片對象包括:使用canvas裁剪所述目標頁面,以得到所述N個圖片對象;以及獲取所述N個圖片對象的統(tǒng)一資[0006]根據(jù)本公開的實施例,所述重新排版并渲染所述N個圖片對象,以形成一個待打印圖像序列包括:在DIV容器中排列基于所述N個圖片對象的URL確定的N個圖像標簽;以及渲染所述DIV容器中的所述N個圖像標簽,以得到所述待打印圖像序列。[0007]根據(jù)本公開的實施例,所述使用canvas裁剪所述目標頁面包括:基于所述目標頁面的尺寸、所述打印紙的尺寸以及預設的打印縮放比例,確定裁剪出的圖像對象的個數(shù)N;基于每次截圖的尺寸以及剪裁出的圖像對象的個數(shù)N,計算每次從所述目標頁面中進行截取的起點坐標;以及遍歷N次,每次從所述目標頁面中以所述起點坐標為起點,按照每次截圖的尺寸截取畫面,并按照所述打印縮放比例縮放后繪制到canvas畫布中。[0008]根據(jù)本公開的實施例,所述基于所述目標頁面的尺寸、所述打印紙的尺寸以及預設的打印縮放比例,確定裁剪出的圖像對象的個數(shù)N包括:將所述目標頁面的橫向尺寸乘以所述打印縮放比例,然后對所述打印紙的橫向尺寸向上取整,得到橫向裁剪數(shù)量m;將所述目標頁面的縱向尺寸乘以所述打印縮放比例,然后對所述打印紙的縱向尺寸向上取整,得到縱向裁剪數(shù)量n;以及基于所述橫向裁剪數(shù)量m和所述縱向裁剪數(shù)量n的乘積,得到N的值。5[0009]根據(jù)本公開的實施例,所述方法還包括:基于所述目標頁面的尺寸和所述打印紙的尺寸的比值,獲取能夠在一頁打印紙內打印所述目標頁面時的全局縮放比例;以及若所述全局縮放比例小于所述最小縮放比例,確定按照所述最小縮放比例縮放后的所述目標頁面不能打印在在一頁所述打印紙內。[0010]根據(jù)本公開的實施例,所述打印所述待打印圖像序列包括:調用window.print()打印所述待打印圖像序列。[0011]本公開實施例的第二方面,提供了一種網(wǎng)頁打印裝置。所述裝置包括獲取模塊、剪裁模塊、重排版模塊以及分頁打印模塊。獲取模塊用于獲取目標頁面的尺寸和打印紙的尺寸。剪裁模塊用于當按照規(guī)定的最小縮放比例縮放后的所述目標頁面不能打印在在一頁所述打印紙內時,裁剪所述目標頁面以得到N個圖片對象,其中,每個圖片對象適合于打印在一頁所述打印紙內,所述N個圖片對象能夠拼接出所述目標頁面的畫面,其中,N為大于1的整數(shù)。重排版模塊用于重新排版并渲染所述N個圖片對象,以形成一個待打印圖像序列。分頁打印模塊用于打印所述待打印圖像序列。[0012]根據(jù)本公開的實施例,所述剪裁模塊具體用于:使用canvas裁剪所述目標頁面,以得到所述N個圖片對象;以及獲取所述N個圖片對象的統(tǒng)一資源定位符URL。[0013]根據(jù)本公開的實施例,所述裝置還包括判斷模塊。所述判斷模塊用于:基于所述目標頁面的尺寸和所述打印紙的尺寸的比值,獲取能夠在一頁打印紙內打印所述目標頁面時的全局縮放比例;以及若所述全局縮放比例小于所述最小縮放比例,確定按照所述最小縮放比例縮放后的所述目標頁面不能打印在在一頁所述打印紙內。[0014]本公開實施例的第三方面,提供了一種電子設備。所述電子設備包括一個或多個處理器以及存儲器。所述存儲器用于存儲一個或多個程序,其中,當所述一個或多個程序被所述一個或多個處理器執(zhí)行時,使得一個或多個處理器執(zhí)行上述方法。[0015]本公開實施例的第四方面,還提供了一種計算機可讀存儲介質,其上存儲有可執(zhí)行指令,該指令被處理器執(zhí)行時使處理器執(zhí)行上述方法。[0016]本公開實施例的第五方面,還提供了一種計算機程序產品,包括計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)上述方法。附圖說明[0017]通過以下參照附圖對本公開實施例的描述,本公開的上述內容以及其他目的、特[0018]圖1示意性示出了根據(jù)本公開實施例的網(wǎng)頁打印方法、裝置、設備、介質和程序產品的應用場景圖;[0019]圖2示意性示出了根據(jù)本公開實施例的網(wǎng)頁打印方法的流程圖;[0020]圖3示意性示出了根據(jù)本公開一實施例的方法中使用canvas裁剪目標頁面的流程[0021]圖4示意性示出了根據(jù)本公開一實施例的方法中重新排版裁剪的N個圖片對象的流程圖;[0022]圖5示意性示出了能夠在一頁打印紙內打印的頁面的示意圖;[0023]圖6示意性示出了在橫向上無法顯示完整的頁面的示意圖;6[0024]圖7示意性示出了在縱向上無法顯示完整的頁面的示意圖;[0025]圖8示意性示出了在橫向和縱向上均無法顯示完整的頁面的示意圖;[0026]圖9示意性示出了根據(jù)本公開一實施例的裁剪目標頁面的示意圖;[0027]圖10示意性示出了根據(jù)本公開一實施例的重新排版裁剪的圖片對象的示意圖;[0028]圖11示意性示出了根據(jù)本公開實施例的網(wǎng)頁打印裝置的結構框圖;以及[0029]圖12示意性示出了適于實現(xiàn)根據(jù)本公開實施例的網(wǎng)頁打印方法的電子設備的方框圖。具體實施方式[0030]以下,將參照附圖來描述本公開的實施例。但是應該理解,這些描述只是示例性的,而并非要限制本公開的范圍。在下面的詳細描述中,為便于解釋,闡述了許多具體的細節(jié)以提供對本公開實施例的全面理解。然而,明顯地,一個或多個實施例在沒有這些具體細節(jié)的情況下也可以被實施。此外,在以下說明中,省略了對公知結構和技術的描述,以避免不必要地混淆本公開的概念。[0031]在此使用的術語僅僅是為了描述具體實施例,而并非意在限制本公開。在此使用[0032]在此使用的所有術語(包括技術和科學術語)具有本領域技術人員通常所理解的含義,除非另外定義。應注意,這里使用的術語應解釋為具有與本說明書的上下文相一致的含義,而不應以理想化或過于刻板的方式來解釋。領域技術人員通常理解該表述的含義來予以解釋(例如,“具有A、B和C中至少一個的系統(tǒng)”示或者隱含地包括一個或者更多個特征。[0034]發(fā)明人在日常工作中經(jīng)常會遇到前端頁面的打印需求。通過查詢以及實踐后發(fā)明人發(fā)現(xiàn),針對某個頁面,若是想將其中的內容完整的打印出來,對該頁面的尺寸是有一定的要求的。頁面寬高在能完整打印的要求之內的,可以調用window.print()打印方式將頁面內容完整打印出來。若是頁面寬高在能完整打印的要求之外的,調用window.print()打印的弊端就會顯示出來了,具體表現(xiàn)為往往只會打印出可視的部分頁面,將不可視(需要滾動鼠標后可查看)的部分頁面直接丟棄,這樣就不符合實際的需求。為應對頁面尺寸在能完整打印的要求之外的情形,可以將要打印的頁面拆分為多個圖像,然后一次性地分別打印該多個圖像,可以將要打印的頁面的內容完整打印下來。[0036]圖1示意性示出了根據(jù)本公開實施例的網(wǎng)頁打印方法、裝置、設備、介質和程序產品的應用場景圖。需要注意的是,圖1所示僅為可以應用本公開實施例的系統(tǒng)架構的示例,以幫助本領域技術人員理解本公開的技術內容,但并不意味著本公開實施例不可以用于其7[0037]如圖1所示,根據(jù)該實施例的應用場景100可以包括終端設備101、網(wǎng)絡102和服務[0038]該應用場景100還可以包括網(wǎng)絡104和打印機105。其中,網(wǎng)絡104用于在終端設備101和打印機105之間提供通信鏈路。網(wǎng)絡104例如可以是局域網(wǎng)(例如,內網(wǎng))。[0039]網(wǎng)絡102或網(wǎng)絡104可以包括各種連接類型,例如有線、無線通信鏈路或者光纖電纜等等。[0040]用戶可以使用終端設備101通過網(wǎng)絡102與服務器103交互,以接收或發(fā)送消息等。終端設備101上可以安裝有各種通訊客戶端應用,例如財務類應用、政務類應用、購物類應用、網(wǎng)頁瀏覽器應用等。終端設備101可以是具有顯示屏并且支持網(wǎng)頁瀏覽的各種電子設[0041]服務器103可以是提供各種服務的服務器,例如對用戶利用終端設備101所瀏覽的網(wǎng)站提供支持的后臺管理服務器(僅為示例)。服務器103可以對接收到的用戶請求等數(shù)據(jù)進行分析等處理,并將根據(jù)用戶請求獲取或生成的網(wǎng)頁等信息反饋給終端設備101。[0042]用戶也可以使用終端設備101通過網(wǎng)絡104與打印機105交互,以向打印機發(fā)送打印任務。例如,當用戶需要打印終端設備101中顯示的網(wǎng)頁時,可以觸發(fā)終端設備101生成打印任務,然后將該打印任務發(fā)送給打印機105,由打印機105來執(zhí)行打印操作。當然,可以理解打印機105也可以終端設備101中內置的虛擬打印機所替代。例如,用戶可以將要打印的網(wǎng)頁,通過終端設備101中的虛擬打印機打印成圖片或PDF文件等。[0043]本公開實施例所提供的網(wǎng)頁打印方法可以終端設備101執(zhí)行。相應地,本公開實施例所提供的網(wǎng)頁打印裝置可以設置于終端設備101中。[0044]進一步地,本公開實施例的網(wǎng)頁打印方法可以由終端設備101中安裝的瀏覽器來執(zhí)行。相應地,本公開實施例所提供的網(wǎng)頁打印裝置可以集成于終端設備101中安裝的瀏覽器中,借助于瀏覽器中的各種控件和工具來實現(xiàn)相應的功能。當然,可以理解的是,根據(jù)本公開實施例的網(wǎng)頁打印方法也可以由終端設備101中安裝的不同于瀏覽器的應用程序(例如,專門開發(fā)的打印工具)來執(zhí)行。相應的本公開實施例所提供的網(wǎng)頁打印裝置可以在終端設備101中以獨立于瀏覽器的方式進行安裝,并通過與瀏覽器的交互進行網(wǎng)頁打印。實現(xiàn)需要,可以具有任意數(shù)目的終端設備、網(wǎng)絡服務器和打印機。[0046]以下將基于圖1描述的場景,通過圖2~圖10對本公開實施例的網(wǎng)頁打印方法進行詳細描述。[0047]圖2示意性示出了根據(jù)本公開實施例的網(wǎng)頁打印方法的流程圖。[0048]如圖2所示,根據(jù)該實施例的網(wǎng)頁打印方法可以包括操作S210、操作S220、以及操作S230~操作S250或操作S260。[0049]首先在操作S210,獲取目標頁面的尺寸和打印紙的尺寸。例如,當用戶需要打印目標頁面時,可以在終端設備101中的瀏覽器窗口上顯示該目標頁面,然后在終端設備中進行預設的操作(例如在瀏覽器上右鍵選擇打印當前頁面、或者點擊瀏覽器上的打印控件、或者啟動自定義的打印程序等),來觸發(fā)對目標頁面的打印指令,然后響應于打印指令,獲取目標頁面的尺寸和打印紙的尺寸。8[0050]通常打印紙和目標頁面為矩形頁面,打印紙和目標頁面的尺寸主要是指當用戶瀏覽網(wǎng)頁時用戶視角下的寬度和高度兩個維度上的尺寸。對于不規(guī)則網(wǎng)頁,也可以處理為矩形網(wǎng)頁的情況。當然,隨著技術的發(fā)展,打印紙和目標頁面的尺寸也可以不限定于矩形尺[0051]然后在操作S220,確定對目標頁面按照規(guī)定的最小縮放比例縮放后,能否打印在一頁打印紙內。若否,則通過操作S230~操作S250進行分頁打?。蝗裟軌虼蛴≡谝豁摯蛴〖垉?,則直接通過操作S260打印目標頁面。其中,操作S260中可以調用瀏覽器的打印功能window.print()進行打印。[0052]根據(jù)本公開的實施例,當目標頁面終端設備101的瀏覽器窗口中不能完整顯示時,可以結合規(guī)定的最小縮放比例的來判斷是否可以打印在一頁打印紙內。其中,規(guī)定該最小縮放比例的目的是為了保證對網(wǎng)頁進行縮放打印后,仍能夠看清楚打印出來的網(wǎng)頁內容。因此,如果目標頁面的尺寸大于打印紙的尺寸時,對目標頁面的縮放程度是有限的,此時需要基于最小打印比例縮放來判斷是否能將目標頁面適度縮放后打印在一頁打印紙之內。[0053]具體地,可以通過多種方式來確定目標頁面按照規(guī)定的最小縮放比例縮放后,能否打印在一頁打印紙內。[0054]例如,可以根據(jù)最小縮放比例和打印紙的尺寸,反向確定可以在一頁打印紙內打印時目標頁面的尺寸范圍,其中,當目標頁面的尺寸在該尺寸范圍內時,則確定目標頁面經(jīng)過縮放后能夠在一頁打印紙內打印。[0055]又例如,可以基于目標頁面的尺寸和打印紙的尺寸的比值,獲取恰好能夠在一頁打印紙內打印目標頁面時的全局縮放比例。若該全局縮放比例小于最小縮放比例,則確定按照最小縮放比例縮放后的目標頁面不能打印在在一頁打印紙內。[0056]具體地,在一個實施例中,獲取該全局縮放比例的過程可以是,分別計算目標頁面的寬高尺寸和打印紙的寬高尺寸的比值,然后對所得的比值中較大的值求倒數(shù)。或者,在另一實施例中,獲取該全局縮放比例的過程也可以是,當目標頁面中僅一個維度(橫向或縱向)的尺寸超出打印紙相應維度的尺寸,就對該維度的尺寸求比值,然后對該比值求倒數(shù)。[0057]接下來在操作S230,當按照規(guī)定的最小縮放比例縮放后的目標頁面不能打印在在一頁打印紙內時,裁剪目標頁面以得到N個圖片對象。其中,每個圖片對象適合于打印在一[0058]所謂每個圖片對象適合于打印在一頁打印紙內例如可以是,每個圖片對象的尺寸小于或等于打印紙的尺寸,或者每個圖片對象的寬高與打印紙的寬高的比值,均在基于最小縮放比例所確定的比值范圍以內。[0059]在一些實施例中可以使用canvas來剪裁目標頁面。在另一些實施例中,也可以通過自定義的網(wǎng)頁剪裁工具或腳本來剪裁目標頁面。[0060]圖3示意性示出了根據(jù)本公開一實施例的方法在操作S230中使用canvas裁剪目標頁面的流程圖。如圖3所示,根據(jù)該實施例操作S230可以包括操作S301~操作S302。[0062]在操作S302,獲取N個圖片對象的統(tǒng)一資源定位符(UniformResourceLocator,[0063]具體地,可以將canvas裁剪得到的圖片對象緩存在瀏覽器中,并返回每個圖片對9象的URL,以方便后續(xù)對N個圖片對象的處理。在使用canvas裁剪目標頁面時,可以調用canvas相關的應用程序接口(ApplicationProgrammingInterface,API)進行裁剪,具體裁剪過程可以參考下文在圖9和圖10中的詳細介紹。[0064]回到圖2。接下來在操作S240,重新排版并渲染N個圖片對象,以形成一個待打印圖像序列。[0065]在一些實施例中,可以將N個圖片對象分別轉換為N個頁面,將N個頁面排列成成一個頁面序列,對該頁面序列進行渲染得到待打印圖像序列。在某些實施例中,可以將該頁面序列作為一個打印任務處理,便于通過用戶的一次打印操作,就可以逐個打印該N個頁面。[0066]在另一些實施例中,當操作S230中反饋N個圖片對象的URL地址時,可以使用超文本標記語言HTML中的DIV容器,將剪裁得到的N個圖片對象通過<img>標簽的方式排列到同以參考圖4的示意。[0067]圖4示意性示出了根據(jù)本公開一實施例的方法在操作S240中重新排版裁剪的N個圖片對象的流程圖。如圖4所示,根據(jù)該實施例,操作S240可以包括操作S401[0068]首先在操作S401,在DIV容器中排列基于N個圖片對象的URL確定的N個圖像標簽。DIV容器是用來為HTML文檔內大塊的內容提供結構和背景的元素,其中,DIV的起始標簽和結束標簽之間的所有內容都是用來構成這個塊的。這樣,可以將N個圖片對象通過<img>標簽的方式,按照在目標網(wǎng)頁中的前后相鄰順序排列起來。[0069]然后在操作S402,渲染DIV容器中的N個圖像標簽,以得到待打印圖像序列。[0070]繼續(xù)參考圖2。接下來在操作S250,打印待打印圖像序列。[0071]當借助于瀏覽器來實現(xiàn)打印時,可以調用window.print()打印待打印圖像序列。具體地,可以將待打印圖像序列(例如,DIV容器中的打印序列)作為一個打印任務傳給window.print(),通過window.print()對待打印圖像序列中的N個圖片對象逐個進行打[0072]當然,除了借助于瀏覽器本身的打印工具外,還通過獨立于瀏覽器的自定義腳本或工具來打印。例如,可以通過該自定義腳本或工具來接收待打印圖像序列,將該待打印圖像序列作為一個打印任務,生成打印指令,并發(fā)送個打印機105執(zhí)行打印操作。[0073]可見,根據(jù)本公開的實施例,可以對目標頁面進行裁剪截圖、切分為多個圖片對象,然后逐個圖片對象打印,以此來解決目標頁面過寬或過高不能直接調用window.print()完整打印的問題。其中,通過將目標頁面中拆解為多個的圖片對象,然后將這些圖片對象重新的進行排版,可以滿足精確分頁打印的需求。該多個圖片對象可以拼接出目標頁面的畫面,從而可以保證打印出的目標頁面的內容的完整性。[0074]而且,本公開實施例中進行目標頁面的裁剪、重新排版等操作可以設置為程序的隱藏操作,用戶不可見。這樣,用戶在需要打印頁面時,可以僅按照預定操作要求觸發(fā)打印指令,程序自動運行后,向用戶輸出多張打印頁面。既保證了打打印出的目標頁面的內容的完整性,又不會給用戶帶來額外的學習和使用負擔。[0075]本公開實施例,能夠解決頁面過寬或過高導致打印不完整、以及難以精確分頁打印的問題。根據(jù)本公開的實施例,可以依據(jù)目標頁面的尺寸進行計算,從而判斷是否需要裁剪頁面并進行分頁打印,實現(xiàn)了精確的分頁打印,便于用戶打印出完整的頁面內容。[0076]以下結合在瀏覽頁面或打印頁面時,時常能碰到如下圖5~圖10展示的情況,對各種情形下本公開實施例的網(wǎng)頁打印方法的具體實施進行示例性說明。[0077]圖5示意性示出了能夠在一頁打印紙內打印的頁面的示意圖。[0078]如圖5所示,當前頁面501能在瀏覽器的可視區(qū)域中能展示完整,不需要左右或者上下滾動鼠標。在一些情況下,可以根據(jù)瀏覽器的窗口尺寸自動匹配對應尺寸的打印紙。這樣,在圖5的情形下,當頁面501能夠在瀏覽器窗口中完整顯示時,意味著頁面501能夠在一頁打印紙中完整打印出來。因此,對于這種情形,可通過上述操作S260直接打印不需要進行裁剪等操作。[0079]圖6示意性示出了在橫向上無法顯示完整的頁面的示意圖。[0080]如圖6所示,當前頁面601在瀏覽器窗口中(或打印預覽的可視界面中),需要左右滾動鼠標用戶才能夠完整查看頁面內容。對于這樣的頁面打印,若是在寬度方向上按照最小縮放比例縮放后能夠展示完整,或者若是寬度尺寸小于按照最小縮放比例縮放后允許在一頁內打印時的最大寬度數(shù)值,則該頁面601縮放后在一頁打印紙內打印出來的內容,也能夠清晰可見。對于這種情形,也可以通過上述操作S260直接打印,不需要進行網(wǎng)頁裁剪等操作。然而,若是頁面601寬度已超出上述最大寬度數(shù)值,則按照最小縮放比例對該頁面601縮放后仍不能夠打印在一頁打印紙內,在這種情形下,則需要按圖9所示的方式對該頁面601進行剪裁(操作S230),然后按照圖10所示的方式對裁剪后的圖片對象重新排版后打印(操作S240和操作S250)。[0081]圖7示意性示出了在縱向上無法顯示完整的頁面的示意圖。[0082]如圖7所示,當前頁面701在瀏覽器窗口中(或打印預覽的可視界面中),需要上下滾動鼠標用戶才能夠完整查看頁面內容。對于這樣頁面打印,若是在高度上按照最小縮放比例縮放后能展示完整,或者該頁面701的高度尺寸小于或等于允許在一頁打印紙內打印的最大高度數(shù)值時,則也可以通過上述操作S260直接打印,不需要進行網(wǎng)頁裁剪等操作。若是高度已超出上述最大高度數(shù)值,即使按照最小縮放比例對該頁面701縮放后仍不能夠在瀏覽器窗口(或一頁打印紙內)完整展示該頁面,則需要按圖9所示的方式對該頁面701進行剪裁(操作S230),然后按照圖10所示的方式對裁剪后的圖片對象重新排版后打印(操作S240和操作S250)。[0083]圖8示意性示出了在橫向和縱向上均無法顯示完整的頁面的示意圖。[0084]如圖8所示,當前頁面801在瀏覽器窗口中(或打印預覽的可視界面中),需要上下左右滾動鼠標用戶才能夠完整查看頁面內容。對于這樣的頁面打印,若是將該頁面801按照最小縮放比例整體縮放后,該頁面801能展示完整,則可以通過上述操作S260直接打印,不需要進行網(wǎng)頁裁剪等操作。若是該頁面801的寬度或者高度已超允許在一頁內打印的最大寬度數(shù)值或最大高度數(shù)值時,則按照規(guī)定的最小縮放比例縮放后,仍不能夠在瀏覽器窗口或打印紙內完整展示該頁面,則需要按圖9所示的方式對該頁面801進行剪裁(操作S230),然后按照圖10所示的方式對裁剪后的圖片對象重新排版后打印(操作S240和操作S250)。[0085]圖9示意性示出了根據(jù)本公開一實施例的裁剪目標頁面的示意圖。[0086]如圖9所示,將目標頁面按打印紙類型(例如,A4紙)和預設的打印縮放比例(例如,用戶選擇的打印縮放比例,或默認的打印縮放比例1)進行裁剪截圖,截圖所得圖片對象的數(shù)量N依據(jù)目標頁面的寬高與打印紙寬高以及上述預設的打印縮放比例進行計算得出。11[0087]圖10示意性示出了根據(jù)本公開一實施例的重新排版裁剪的圖片對象的示意圖。[0088]如圖10所示,對圖9中裁剪得到的圖片對象重新進行排版。重新排版時可以按照裁剪順序或者坐標順序進行排版。例如,可以將圖9中位于同一行的圖片對象按照從左到右的先后順序排列,然后在某一行最末位的圖片對象之后再從另一行最左端的圖片對象開始排列。依次循環(huán),直到把所有圖像排列完整,形成圖10中的圖片對象序列。這樣排版出的圖像對象序列被打印出來后,便于用戶將相鄰兩頁的內容聯(lián)系起來,方便用戶閱讀。[0089]圖9和圖10中的網(wǎng)頁裁剪和圖像重排版的過程可以設置為對用戶不可見,屬于隱藏式操作,不影響用戶的打印體驗。[0090]接下來,結合圖9和圖10,以使用canvas裁剪目標頁面為例,來詳細說明使用canvas裁剪的具體實現(xiàn)過程。[0091]根據(jù)本公開的一個實施例,在操作S230中可以使用canvas相關的API來實現(xiàn)目標頁面的裁剪,并獲取到剪裁后的圖片對象的URL(操作S301~操作S302),其中對目標頁面進行裁剪的方法可以如表1的示例:該方法中一共可使用的參數(shù)有9個(不一定全部傳入),各參數(shù)的含義如下:dx:表示繪制圖像時x軸的坐標值dy:表示繪制圖像時y軸的坐標值dWidth:在目標畫布上繪制圖像的寬度。允許對繪制的圖像按照打印縮放比例進行縮放,若是不指定打印縮放比例,在繪制時圖片寬度不縮放dHeight:在目標畫布上繪制圖像的高度。允許對繪制的圖像按照打印縮放比例進行縮放。若是不指定打印縮放比例,在繪制時圖片高度不縮放sx:截取圖像時指定起點的x坐標sy:截取圖像時指定起點的y坐標sWidth:圖像截取的寬度sHeight:圖像截取的高度通過調用表1的方法,可以在canvas對象ctx中繪圖。首先以目標頁面中(sx,sy)為起點,在目標頁面中剪裁寬高尺寸為(sWidth,sHeight)的頁面截圖。然后將該截圖在的尺寸(dWidth,dHeight)是根據(jù)截圖的寬高尺寸(sWidth,sHeight)和預設的打印縮放比比例例如可以是用戶進行打印設置時選擇的縮放比的數(shù)量(其中,不規(guī)則的頁面可以視為矩形處理)。例如,為了后續(xù)打印方便,可以設置[0104]橫向數(shù)量:m=[W*r/dwidth][0106]其中,「表示向上取整。(sWidth,sHeight),可以逐個確定要裁剪的每個圖片對象的起點坐標。[0114]url:“http://localhost/image/img1.png”[0118]url:“http://localhost/image/img2.png”[0123]url:“http://localhost/image/imgmn.png”[0125]其中,繪制到canvas畫布中的圖片對象可以存在才瀏覽器端,該URL為瀏覽器中存儲每個圖片對象的地址信息。[0126]在獲得了每個圖片對象的URL之后,可以在操作S240中利用這些URL對圖片對象進行重新排版和渲染,如在操作S401~操作S402中在DIV容器中利用<img>標簽對這些圖片對象進行重新排版,然后通過瀏覽器對這些圖片對象進行渲染,得到待打印圖像序列。然后在操作S250中打印該待打印圖像序列,即可以對目標頁面實現(xiàn)分頁打印。[0127]可見,本公開實施例的網(wǎng)頁打印方法可以集成到瀏覽器中,借助瀏覽器的功能來執(zhí)行相應的打印方法步驟,引用方便,不需要安裝其他的打印控件等,可以直接在前端工程文件中引入該打印方法即可,可以使用的是原生Javascript語言實現(xiàn)。并且,本公開實施例的方法使用簡潔方便,在開發(fā)和實現(xiàn)時只需在工程中,將目標頁面dom節(jié)點的頁面ID等傳入該打印方法即可,不需冗余的代碼。[0128]基于上述各實施例的網(wǎng)頁打印方法,本公開實施例還提供了一種網(wǎng)頁打印裝置。以下將結合圖11對該裝置進行詳細描述。[0129]圖11示意性示出了根據(jù)本公開實施例的網(wǎng)頁打印裝置1100的結構框圖。[0130]如圖11所示,該網(wǎng)頁打印裝置1100包括獲取模塊1110、剪裁模塊1120、重排版模塊1130以及分頁打印模塊1140。根據(jù)本公開的另一些實施例,該網(wǎng)頁打印裝置1100還可以進一步包括判斷模塊1150。該網(wǎng)頁打印裝置1100可以用于執(zhí)行參考圖2~圖10所描述的網(wǎng)頁打印方法。[0131]獲取模塊1110用于獲取目標頁面的尺寸和打印紙的尺寸。在一個實施例中,獲取模塊1110例如可以執(zhí)行前文描述的操作S210。[0132]剪裁模塊1120用于當按照規(guī)定的最小縮放比例縮放后的目標頁面不能打印在在一頁打印紙內時,裁剪目標頁面以得到N個圖片對象,其中,每個圖片對象適合于打印在一頁打印紙內,N個圖片對象能夠拼接出目標頁面的畫面,其中,N為大于1的整數(shù)。在一個實施例中,剪裁模塊1120可以執(zhí)行前文描述的操作S230。[0133]根據(jù)本公開的實施例,剪裁模塊1120具體可以用于:使用canvas裁剪目標頁面,以得到N個圖片對象;以及獲取N個圖片對象的統(tǒng)一資源定位符URL。[0134]判斷模塊1150用于在剪裁模塊1120進行裁剪前,基于目標頁面的尺寸和打印紙的尺寸的比值,獲取能夠在一頁打印紙內打印目標頁面時的全局縮放比例,以及若全局縮放比例小于最小縮放比例,確定按照最小縮放比例縮放后的目標頁面不能打印在在一頁打印紙內。在一個實施例中,判斷模塊1150可以執(zhí)行前文描述的操作S220。[0135]重排版模塊1130用于重新排版并渲染N個圖片對象,以形成一個待打印圖像序列。在一個實施例中,重排版模塊1130可以執(zhí)行前文描述的操作S240。[0136]分頁打印模塊1140用于打印待打印圖像序列。在一個實施例中,分頁打印模塊1140可以執(zhí)行前文描述的操作S250。[0137]根據(jù)本公開的實施例,獲取模塊1110、剪裁模塊1120、重排版模塊1130、分頁打印模塊1140和判斷模塊1150中的任意多個模塊可以合并在一個模塊中實現(xiàn),或者其中的任意一個模塊可以被拆分成多個模塊?;蛘?,這些模塊中的一個或多個模塊的至少部分功能可以與其他模塊的至少部分功能相結合,并在一個模塊中實現(xiàn)。根據(jù)本公開的實施例,獲取模塊1110、剪裁模塊1120、重排版模塊1130、分頁打印模塊1140和判斷模塊1150中的至少一個可以至少被部分地實現(xiàn)為硬件電路,例如現(xiàn)場可編程門陣列(FPGA)、可編程邏輯陣列(PLA)、片上系統(tǒng)、基板上的系統(tǒng)、封裝上的系統(tǒng)、專用集成電路(ASIC),或進行集成或封裝的任何其他的合理方式等硬件或固件來實現(xiàn),或以軟件、硬件以及固件三種實現(xiàn)方式中任意一種或以其中任意幾種的適當組合來實現(xiàn)。或者,獲取模塊1110、剪裁模塊1120、重排版模塊1130、分頁打印模塊1140和判斷模塊1150中的至少一個可以至少被部分地實現(xiàn)為計算機程序模塊,當該計算機程序模塊被運行時,可以執(zhí)行相應的功能。[0138]圖12示意性示出了適于實現(xiàn)根據(jù)本公開實施例的網(wǎng)頁打印方法的電子設備的方框圖。[0139]如圖12所示,根據(jù)本公開實施例的電子設備1200包括處理器1201,其可以根據(jù)存儲在只讀存儲器(ROM)1202中的程序或者從存儲部分1208加載到隨機訪問存儲器(RAM)1203中的程序而執(zhí)行各種適當?shù)膭幼骱吞幚?。處理?201例如可以包括通用微處理器(例如CPU)、指令集處理器和/或相關芯片組和/或專用微處理器(例如,專用集成電路(ASIC))等等。處理器1201還可以包括用于緩存用途的板載存儲器。處理器1201可以包括用于執(zhí)行根據(jù)本公開實施例的方法流程的不同動作的單一處理單元或者是多個處理單元。[0140]在RAM1203中,存儲有電子設備1200操作所需的各種程序和數(shù)據(jù)。處理器1201、1203中的程序來執(zhí)行根據(jù)本公開實施例的方法流程的各種操作。需要注意,所述程序也可以存儲在除ROM1202和RAM1203以外的一個或多個存儲器中。處理器1201也可以通過執(zhí)行存儲在所述一個或多個存儲器中的程序來執(zhí)行根據(jù)本公開實施例的方法流程的各種操作。[0141]根據(jù)本公開的實施例,電子設備1200還可以包括輸入/輸出(I/0)接口1205,輸入/輸出(I/0)接口1205也連接至總線1204.電子設備1200還可以包括連接至I/0接口1205的以下部件中的一項或多項:包括鍵盤、鼠標等的輸入部分1206;包括諸如陰極射線管(CRT)、液晶顯示器(LCD)等以及揚聲器等的輸出部分1207;包括硬盤等的存儲部分1208;以及包括諸如LAN卡、調制解調器等的網(wǎng)絡接口卡的通信部分1209。通信部分1209經(jīng)由諸如因特網(wǎng)的網(wǎng)絡執(zhí)行通信處理。驅動器1210也根據(jù)需要連接至I/0接口1205??刹鹦督橘|1211,諸如磁盤、光盤、磁光盤、半導體存儲器等等,根據(jù)需要安裝在驅動器1210上,以便于從其上讀出的計算機程序根據(jù)需要被安裝入存儲部分1208。[0142]本公開還提供了一種計算機可讀存儲介質,該計算機可讀存儲介質可以是上述實施例中描述的設備/裝置/系統(tǒng)中所包含的;也可以是單獨存在,而未裝配入該設備/裝置/系統(tǒng)中。上述計算機可讀存儲介質承載有一個或者多個程序,當上述一個或者多個程序被執(zhí)行時,實現(xiàn)根據(jù)本公開實施例的方法。[0143]根據(jù)本公開的實施例,計算機可讀存儲介質可以是非易失性的計算機可讀存儲介存儲器件、磁存儲器件、或者上述的任意合適的組合。在本公開中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用。例如,根據(jù)本公開的實施例,計算機可讀存儲介質可以包括上文描述的ROM1202和/或RAM1203和/或ROM1202和RAM[0144]本公開的實施例還包括一種計算機程序產品,其包括計算機程序,該計算機程序包含用于執(zhí)行流程圖所示的方法的程序代碼。當計算機程序產品在計算機系統(tǒng)中運行時,該程序代碼用于使計算機系統(tǒng)實現(xiàn)本公開實施例所提供的方法。[0145]在該計算機程序被處理器1201執(zhí)行時執(zhí)行本公開實施例的系統(tǒng)/裝置中限定的上塊來實現(xiàn)。[0146]在一種實施例中,該計算機程序可以依托于光存儲器件、磁存儲器件等有形存儲介質。在另一種實施例中,該計算機程序也可以在網(wǎng)絡介質上以信號的形式進行傳輸、分發(fā),并通過通信部分1209被下載和安裝,和/或

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論