Lodop中的打印項內容位置定位,除了打印項本身的top,left值,也會受其他設定或打印機的影響。
打印開發,先用虛擬打印機測試出正確結果,然后客戶端用打印維護微調
常見問題:
1.設置打印項相對于紙張居中,內容沒有相對紙張居中。
打印項居中,但是如果打印項內容本身有內容邊距,里面的內容沒有相對于自身的邊距居中,自然內容也不會在紙張中居中。
2.打印項位置不對,不是設置的top,left值,打印內容被切去了,顯示不出來,打印預覽有虛線,虛線外的內容是空白。
虛線是打印機的可打區域,是物理的可打區域,和打印機有關,可打區域外是不打印的。
(默認打印項定位是以可打區域為基點,設置以紙張為基點可查看本博客另一篇博文:Lodop打印控件打印機可打區域的影響 設置紙張邊緣為基點)
影響打印項在紙張中受到的可能邊距:
1.打印項本身的top,left值。
2.INITA初始化語句第一、二參數的偏移值。.
3.打印預覽中虛線引起的邊距(打印機的可打區域的影響)
打印項內容受到的可能邊距:
1.打印項本身的top,left值。
2.INITA初始化語句第一、二參數的偏移值。
3.打印預覽中虛線引起的邊距(打印機的可打區域的影響)
4.打印項內部的邊距(內容的邊距,如超文本中的css樣式等)
各種邊距解釋:
1.打印項設置的邊距
添加Lodop各種打印項(例如ADD_PRINT_HTM(Top,Left,Width,Height,strHtmlContent)),參數中:
top是打印項在紙張內的上邊距,打印項在紙張內的上邊距,也就是在每張紙的上下起點位置。
left是打印項在紙張內的左邊距,也就是在每張紙的左右起點位置
2.整體偏移導致的邊距
INITA初始化語句第一、二參數的偏移值,所有打印內容針對紙張進行偏移,偏移上邊距或左邊距。
3.打印機可打區域引起的邊距
和打印機有關,預覽里以虛線的形式存在,虛線外是打印不出來的。默認是以可打區域為邊緣,可以用語句設置以紙張邊緣為基點進行設計。
4.打印項內部的邊距
例如超文本自帶的本身里的邊距,條碼等設置打印項多寬,可能里面實際內容沒有多寬,因為受條碼豎線合計值的影響。
PRINT_INITA的三、四參數與紙張無關,這個只是設置打印設計可視化編輯區域的,PRINT_INITA的三、四參數 打印設計可視化編輯區域(與紙張無關)
SET_PRINT_PAGESIZE的二、三參數 設置自定義紙張大小,第四參數紙張名稱。
出現邊距或位置不對,可先用虛擬打印機測試一下。
如果虛擬打印機不正常,可排查代碼問題。例如PRINT_INITA初始化語句第一、二參數不為0,打印項內部邊距。
如果虛擬打印機正常,在預覽里查看一下,真實打印機自定義紙張是否生效,是否有打印機可打區域的影響以及打印機或打印機驅動問題。
用虛擬打印機測試正常,用真實打印機預覽也沒有空白邊距,就是走紙的時候位置不對,有空白邊距:
正常情況下預覽是打印機的反顯,打印機如果預覽正常,打印不正常,只能和打印機驅動,或這打印機
實體打印機是否在初始位置輸出,或打印機初始走紙位置不正確,聯系打印機廠商確認一下。
如果確認真實打印機預覽正常,打印不正常,重裝打印機驅動試試,如果重裝驅動沒有西效果。
實體打印機是否在初始位置輸出,或打印機初始走紙位置不正確,聯系打印機廠商確認一下。
該文章在 2023/9/27 12:12:16 編輯過