LODOP超文本簡短問答和相關內容


html樣式
查看lodop內部解析的html信息,見http://www.c-lodop.com/faq/pp8.html
分析差異點,因瀏覽器版本不同遵循的html標准不同,造成某些標簽屬性顯示有差異,盡量避免使用有差異的屬性,可以在ie下不同版本仿真情況下驗證差異
排查樣式,盡量使用使用各瀏覽器無歧義的通用的 html css js,不支持的樣式可嘗試用其他樣式代替。

可嘗試把ADD_PRINT_HTM 換成 ADD_PRINT_HTML(圖形模式)試試,ADD_PRINT_HTML不如ADD_PRINT_HTM清晰,適合高精度的打印機,兩者各有優勢。

1.加載css樣式,參考樣例10 http://www.c-lodop.com/demolist/PrintSample10.html
2.css樣式等盡量使用pt等絕對單位,不使用px等相對單位,避免分辨率的影響
3.系統和瀏覽器不要設置縮放,例如 控制板面-顯示里設置縮放。
4.查看lodop內部解析的html信息,見http://www.c-lodop.com/faq/pp8.html
因瀏覽器版本不同遵循的html標准不同,造成某些標簽屬性顯示有差異,盡量避免使用有差異的屬性。
5.使用各瀏覽器無歧義的通用的 html css js,
Lodop是基於本機ie引擎進行解析渲染的,不要用本機ie不支持的html css js ,重置ie瀏覽器試試。
6.可嘗試把ADD_PRINT_HTM 換成 ADD_PRINT_HTML(圖形模式)試試。
7.用xps或pdf虛擬打印機測試一下,和真實打印機對比。
8.盡量使用最新版Lodop和c-lodop。最新版下載地址 http://www.c-lodop.com/download.html
9.是否是瀏覽器緩存問題,重置ie瀏覽器試試,清楚緩存。
10.頁面,圖片,js等超文本是否沒有加載完全,顯示空白或者圖片缺失等問題,加延遲試試:
LODOP.SET_PRINT_STYLEA(0,"HtmWaitMilSecs",1000)//設置上一項延遲超文本下載1000毫秒
是否沒有加載完全,給該超文本打印項加延遲試試:
LODOP.SET_PRINT_STYLEA(0,"HtmWaitMilSecs",1000)//設置上一項延遲超文本下載1000毫秒

超文本打印項自動分頁
超文本超過設置的打印項高度就會自動分頁,可通過調整超文本打印項的高度,控制當前頁面輸出的多少內容。(打印項高度可在打印設計界面可視化調整)
設置的打印項高度太小,還沒到達紙張下面就自動分頁了。

選中打印項,增加打印項高度,然后預覽,查看效果。
也就是超文本打印項的第四個參數。
例如ADD_PRINT_HTM(intTop,intLeft,intWidth,intHeight,strHtml)增加超文本項
intHeight就是的打印項高度
可以在打印設計可視化調整,到合適的分頁位置。

如果內容超出了紙張,不想分頁,可以縮放http://www.c-lodop.com/demolist/PrintSample42.html
設置高度溢出縮放,或整頁縮放。

超文本字體
Lodop是基於本機windows底層引擎進行渲染解析的,與ie調用的引擎一致。
在ie里查看下效果,注意css樣式的字體設置的時候,用中文名,比如宋體,不要用中文字體的英文別名。

資源訪問受限,需要驗證后才能訪問的資源
由於Lodop借用IE下載引擎,與非IE瀏覽器之間目前不能傳遞Session(Cookies),所以需要安全驗證的頁面不要用URL方式打印,要用頁面已經下載好的內容的HTM方式打印,也就是ADD_PRINT_HTM或ADD_PRINT_TABLE等語句
另外URL方式需要二次訪問服務器,理論上存在下載失敗的可能,所以專業的管理系統盡量不要用URL方式。

打印空白頁
建議先用xps或pdf虛擬打印機測試一下。
如果虛擬打印沒有空白頁,可能是紙張或可打區域的問題。
可用真實打印機預覽:
1.查看預覽下方狀態欄紙張是否是設置的紙張,有的打印機不支持該自定義紙張。
2.查看預覽里是否有虛線,虛線是打印機可打區域,超過可打區域到了下一頁。
如果虛擬打印機有空白頁,可能是有不可見內容等導致的。

多打印一張空白頁,打印HTML內容,帶上!DOCTYPE htm標簽 聲明試試。
盡量使用最新版。
1.給傳入的整個超文本添加背景色,看輸出的空白頁中是否有背景色,有說明不可見內容。
2.可在打印設計界面,選中超文本打印項,右鍵查看里面實際的內容,是否有不可見的內容。

(1)可能有不可視內容 導致打印內容高度超過打印項高度 打印設計里調整下打印項高度。
進入打印設計LODOP.PRINT_DESIGN();,分析一下 超文本是否輸出了空白信息 或加入超文本背景色看一下。
空白頁,正好超出設置高度一點也會自動分頁,從這里入手分析。
(2)打印項上邊距加高度超過紙張高度 如ADD_PRINT_HTML(10, 15, "100%", "100%");
百分比是相對紙張的 上邊距10 + 高度100% 超出紙張的高度
(3)沒初始化,容易造成多頁的現象。
(4)設置一下內容的高度,不要緊貼紙張大小輸出,有時會接近紙張的無限邊界時 有打印空白頁 的現象或改用newpage
(5) 打印機可打印區域問題 http://www.c-lodop.com/faq/pp26.html 。參考樣例5,可設置以紙張邊緣為基點輸出,排除打印機可打印區域的影響。

打印不清晰
如果是超文本,把htm中的單位 修改為 pt,不要使用相對單位px,避免分辨率的影響
ADD_PRINT_HTML 換成 ADD_PRINT_HTM,
ADD_PRINT_HTML是圖形模式,有些打印機對圖形支持不好。
小票針式打印 建議用 ADD_PRINT_TEXT,不用用htm,
紙張高度不定容易引起 htm 中排版變形
用虛擬打印機驗證一下,如果沒有問題,就是打印機的問題了,是否打印機缺墨了。

如何輸出清晰圖片 參考http://www.c-lodop.com/faq/pp14.html不要在img標簽里縮放。
預覽是縮略圖,用xps或pdf虛擬打印機直接打印查看下效果,查看下虛擬打印機直接打印生成的文件。

如何輸出清晰圖片 參考 http://www.c-lodop.com/faq/pp14.html
並用xps或pdf虛擬打印機測試
如果用的是ADD_PRINT_HTML ,換成 ADD_PRINT_HTM試試,這種是解析后的超文本,放大也不會模糊。 

超文本顯示不全
1.是否沒有加載完全,給該超文本打印項加延遲試試:
LODOP.SET_PRINT_STYLEA(0,"HtmWaitMilSecs",1000)//設置上一項延遲超文本下載1000毫秒
2.超文本內容超過紙張高度,會自動分頁,查看預覽下方狀態欄是否是多頁。
3.打印預覽的虛線是可打區域,參考http://www.lodop.net/faq/pp26.html
這個是打印機的可打區域。該區域外打印不出來。
打印設計,參考http://www.lodop.net/demolist/PrintSample3.html
進入打印設計,可以可視化調整一下,減小打印項高度,超過高度部分會被分到下一頁。

輸出清晰圖片:
如何輸出清晰圖片 參考http://www.c-lodop.com/faq/pp14.html
並用xps或pdf虛擬打印機測試

用xps或pdf虛擬打印機直接打印查看下效果,查看下虛擬打印機直接打印生成的文件。

按照鏈接處理的,虛擬打印機打印出來正常,真實打印機有問題
理論上本機虛擬打印沒問題的話,說明插件代碼沒問題,程序可做的努力就的確很少了,畢竟windows下的打印是微軟倡導的設備無關系原則,要在打印機和打印驅動程序 系統上排查下,
或者用其他圖片處理工具處理成合適尺寸,打印原圖試試。

如果lodop的縮略方式效果對該打印機不行,就只能用其他圖片處理工具處理成合適尺寸,打印原圖試試。

但是虛擬打印機是好的,對該打印機不行,就只能用其他圖片處理工具處理成合適尺寸,打印原圖試試。沒有其他方法了。

打印透明圖:
打印圖片,參考http://www.lodop.net.cn/demolist/PrintSample8.html
打印透明效果,打印公章 參考 http://www.lodop.net.cn/demolist/PrintSample37.html
和虛擬打印機對比測試,有的打印機不支持透明圖打印。

試試把add_print_htm換成add_print_html試試。
如果打印預覽等顯示是透明圖是可以的,嘗試上述方式后打印機打出來還是不透明,可能是打印機不支持透明圖打印,咨詢一下打印機客服。

圖片顯示叉號問題
(1)查看lodop內部解析的html信息,見http://www.c-lodop.com/faq/pp8.html
查看一下傳入的圖片路徑是否正確,盡量用絕對路徑地址,換個圖片試試。
(2)顯示空白或者圖片缺失等問題,加延遲試試:
LODOP.SET_PRINT_STYLEA(0,"HtmWaitMilSecs",1000)//設置上一項延遲超文本下載1000毫秒
(3)權限問題,圖片顯示叉號 說明服務端拒絕了 可能證書 session等問題,導致沒有直接訪問該圖片的權限,有些需要驗證之后才能訪問圖片。由於Lodop借用IE下載引擎,與非IE瀏覽器之間目前不能傳遞Session(cookies)
(4)清空ie緩存 重置ie 后在ie中查看下。IE中的URL最大長度限制為2048字節。超過這個長度會不支持。
(5) 查看服務器端錯誤日志排查下 。
(6)做個簡單的例子驗證下,排除其他因素的干擾。Base64輸出圖片參考樣例38。
直接把圖片地址放到ie瀏覽器里是試驗下。能否直接在瀏覽器里訪問到。

重裝一個新的IE(IE11),然后第一次啟動IE11 如果有一個安全性的確認框,確定一下試試。

確認圖片地址正確盡量用絕對地址 能在ie下正確顯示 測試參考樣例8。Css背景圖不支持的。

圖片顯示叉號 說明服務端拒絕了 可能證書 session 地址等問題
清空ie緩存后在ie中查看下,查看服務器端錯誤日志排查下 。
由於Lodop借用IE下載引擎,與非IE瀏覽器之間目前不能傳遞Session(cookies)
IE中的URL最大長度限制為2048字節。超過這個長度會不支持。

圖片顯示空白 可以加延遲試下
LODOP.ADD_PRINT_IMAGE(30, 150, 400, 400, "F:\\IMG00849706.jpg");
LODOP.SET_PRINT_STYLEA(0,"HtmWaitMilSecs",1000)//設置上面打印項延遲
參考技術手冊SET_PRINT_STYLEA函數,設置延遲HtmWaitMilSecs屬性。

Base64圖片參考樣例38

打印圖片,參考http://www.c-lodop.com/demolist/PrintSample8.html
Lodop是基於本機windows底層引擎進行渲染解析的,與ie調用的引擎一致,直接把圖片地址放到ie瀏覽器里是試驗下。能否直接在瀏覽器里訪問到。

ie訪問不了圖片
在該台電腦的ie里訪問下該圖片地址

Lodop是基於本機windows底層引擎進行渲染解析的,與ie調用的引擎一致。
在ie里查看下效果

版本低也應該是能訪問圖片地址的,是否是ie瀏覽器存在問題,重置ie,或百度下ie不能訪問圖片的原因,修復下ie,或重裝ie。

需要能在ie里直接訪問的地址。
重置ie試試,必須讓ie能訪問到該圖片。

圖片顯示空白
顯示空白或者圖片缺失等問題,加延遲試試:
LODOP.SET_PRINT_STYLEA(0,"HtmWaitMilSecs",1000)//設置上一項延遲超文本下載1000毫秒

圖片顯示不全
1.顯示空白或者圖片缺失,圖片部分缺失等問題,加延遲試試:
LODOP.SET_PRINT_STYLEA(0,"HtmWaitMilSecs",1000)//設置上一項延遲超文本下載1000毫秒
2.在預覽里查看下效果,是否有可打區域的影響
打印預覽的虛線是可打區域,參考http://www.lodop.net/faq/pp26.html
這個是打印機的可打區域。該區域外打印不出來。
3.或換用base64輸出圖片試試,Base64輸出圖片參考樣例38http://www.c-lodop.com/demolist/PrintSample38.html

批量打圖片
圖片批量打印,src 方式輸出,需要通過瀏覽器引擎解析,存在不釋放緩存的現象,可嘗試base64碼輸出,參考樣例38http://www.c-lodop.com/demolist/PrintSample38.html
base64位碼輸出直接通過本地lodop程序解析,無需經過瀏覽器引擎解析

批量打印,分頁分任務,在頁數和任務之間平衡一下,參考樣例26http://www.c-lodop.com/demolist/PrintSample26.html
是否是大量打印超文本造成的,Lodop大量打印超文本,調用ie引擎解析,ie緩存過多不釋放,可能造成一些影響,如果大量打印,可以試試用純文本方式。

批量打印中隨機圖片顯示空白
1.顯示空白或者圖片缺失等問題,加延遲試試:
LODOP.SET_PRINT_STYLEA(0,"HtmWaitMilSecs",1000)//設置上一項延遲超文本下載1000毫秒
2.盡量不要批量打印太大的圖片,瀏覽器引擎不釋放,可能會導致圖片空白。
參考樣例38,換用base64方式試試。

Lodop不打印css背景圖
background:url()這是背景圖,http協議會按異步方式下載背景圖,所以很容易等不到下載完畢就開始打印了,故lodop不打印背景圖。至於普通圖片參考樣例37 http://www.c-lodop.com/demolist/PrintSample37.html
用普通圖片的輸出方式。

css背景圖,參考http://www.c-lodop.com/faq/pp14.html
通常情況下打印圖片都支持,因超文本背景圖片是異步資源,所以默認是不打印的。
實現超文本包含背景圖片效果可以有3種解決方法:
1.把ADD_PRINT_HTM 改為 ADD_PRINT_HTML ,圖形模式輸出;
2.使用透明圖片效果實現,參考樣例37;
3.用lodop函數語句輸出背景圖,參考樣例9。
Lodop背景圖ADD_PRINT_SETUP_BKIMG,參考http://www.c-lodop.com/demolist/PrintSample9.html

清除lodop緩存樣式
1.不同任務之間不會互相影響,每個任務都要加初始化語句PRINT_INIT或PRINT_INITA;
2.如果是輸出超文本是舊的內容,可清理一下瀏覽器緩存,刷新頁面。
3.加載css樣式,參考樣例10 http://www.c-lodop.com/demolist/PrintSample10.html
如果有些樣式不需要,可以在傳入的時候去掉
4.如果是指針打印維護對客戶端調整,該客戶端調整后的樣式,參考http://www.c-lodop.com/faq/pp9.html

個別電腦不同
1.如果是超文本,本機調用的ie引擎版本不同,超文本的一些樣式可能有差異,排查樣式。
查看lodop內部解析的html信息,見http://www.c-lodop.com/lodop/faq/p1.html
分析差異點,因瀏覽器版本不同遵循的html標准不同,造成某些標簽屬性顯示有差異,盡量避免使用有差異的屬性,可以在ie下不同版本仿真情況下驗證差異
2.css樣式等盡量使用pt等絕對單位,不使用px等相對單位,避免分辨率的影響
3.系統和瀏覽器不要設置縮放,例如 控制板面-顯示里設置縮放。
4.排查是否有打印維護的本地配置的影響,該打印維護的緩存的配置文件只針對該客戶端有效,參考http://www.c-lodop.com/faq/pp9.html
5.打印機紙張問題:紙張大小是否一致,在預覽下方狀態欄查看是否是設置的紙張,有的打印機不支持自定義紙張。
6.可打印區域是否影響到了輸出內容的大小,參考http://www.c-lodop.com/faq/pp26.html
7.用xps或pdf虛擬打印機測試一下,如果虛擬打印機沒有問題,可排除插件代碼問題,理論上虛擬打印沒問題的話,程序可做的努力就的確很少了,畢竟windows下的打印是微軟倡導的設備無關系原則,要在打印機和打印驅動程序上找原因,可嘗試重裝驅動,或咨詢一下打印機服務商。

如果虛擬打印機正常,可能和打印機有關,預覽查看是否和打印機可打區域有關,參考“可打區域”邊緣與打印機本身有關,表現在預覽里是虛線,可打區域的影響
http://www.c-lodop.com/faq/pp26.html
如果虛擬打印機也不正常,可能和超文本解析有關,查看lodop內部解析的html信息,見http://www.c-lodop.com/faq/pp8.html
分析差異點,因瀏覽器版本不同遵循的html標准不同,造成某些標簽屬性顯示有差異,盡量避免使用有差異的屬性,可以在ie下不同版本仿真情況下驗證差異

不同電腦IE版本可能不同,超文本的解析效果可能不同。
查看是哪些樣式不同,排查下是哪些樣式的影響。

Lodop是基於本機windows底層引擎進行渲染解析的,與ie調用的引擎一致。
調用的的解析版本不同,會導致樣式可能有差異,需要在有問題的電腦上排查樣式。

不同用戶的解析效果可能不同,樣式盡量兼容多一點版本的ie瀏覽器,盡量避免使用有差異的屬性,可以在ie下不同版本仿真情況下驗證差異。

預覽超文本樣式寬高和頁面不同
查看lodop內部解析的html信息,見http://www.c-lodop.com/faq/pp8.html
拖動瀏覽器,查看樣式是否和容器有關。
頁面上的樣式相對於瀏覽器,打印預覽的是相對於紙張。
如果寬高和容器有關,受紙張影響,樣式可能會有變化。

打印表格
超文本輸出表格:ADD_PRINT_HTML、ADD_PRINT_HTM、ADD_PRINT_TABLE、ADD_PRINT_TBURL
打印表格帶頁頭頁尾 參考樣例15 http://www.c-lodop.com/demolist/PrintSample15.html
分頁打印綜合表格 參考樣例43 http://www.c-lodop.com/demolist/PrintSample43.html
超文本表格傳入css樣式,參考樣例10 http://www.c-lodop.com/demolist/PrintSample10.html
純文本+線輸出表格:ADD_PRINT_TEXT、ADD_PRINT_LINE
畫線輸出表格,參考http://www.c-lodop.com/demolist/PrintSampleA1.html

超文本排查
查看lodop內部解析的html信息,見http://www.c-lodop.com/faq/pp8.html
排查調試內部的html信息

查看lodop內部解析的html信息,見http://www.c-lodop.com/faq/pp8.html
查看一下傳入的樣式,排查一下樣式問題。
把從打印設計,選中超文本打印項,右鍵屬性里拷出來的超文本代碼發過來這邊排查測試一下試試。
建議先自己可以通過刪減內容,或做簡單例子的方式,找到出問題的html或樣式。

查看lodop內部解析的html信息,見http://www.c-lodop.com/faq/pp8.html
建議先自己可以通過刪減內容,或做簡單例子的方式,找到出問題的html或樣式,定位到哪些html或樣式引起的。

查看lodop內部解析的html信息,見http://www.c-lodop.com/faq/pp8.html
建議先自己可以通過刪減內容,或做簡單例子的方式,找到出問題的html或樣式,定位到哪些html或樣式引起的。
也可以把從打印設計,選中超文本打印項,右鍵屬性里拷出來的超文本代碼發過來這邊有空時排查測試一下。

 與超文本有關的本博客的博文:Lodop打印控件傳入css樣式、看是否傳入正確樣式Lodop打印控件不打印css背景圖怎么辦Lodop打印如何隱藏table某一列Lodop打印控件設置表格次頁偏移Lodop打印控件 超文本自動分頁Lodop打印控件 打印透明圖問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM