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