lodop一種導致自定義紙張無效現象的錯誤寫法


代碼設置了自定義紙張,預覽下方狀態欄先的不是設置的紙張,而是諸如A4紙張等默認紙張。
且預覽的設置里是該真實打印機預覽的,這種現象一般是該打印機不支持自定義紙張導致的。

紙張設置,參考樣例5 http://www.c-lodop.com/demolist/PrintSample5.html
用xps或pdf虛擬打印機測試一下(測試可用樣例5),如果虛擬打印機輸出的是正確的紙張,真實打印機不是,可能是打印機不支持該自定義紙張。 選擇該真實打印機,在打印預覽下方狀態欄查看一下紙張大小,有的打印機不支持該自定義紙張。
樣例5的步驟1輸入尺寸,點預覽,預覽里切換不同打印機,該真實打印機不支持該自定義紙張尺寸,會不生效。

不過目前發現,也有一種錯誤寫法,可能會導致支持該自定義紙張,預覽卻顯示的是A4等默認尺寸,這種現象的原因是指定打印機錯誤導致的。
在打印任務內指定打印機語句,可用:
SET_PRINTER_INDEX(oIndexOrName);按序號或名稱指定打印機,選定后禁止手工重選;
SET_PRINTER_INDEXA(IndexorName);按序號或名稱指定打印機,選定后允許手工重選;

如果把指定windows默認打印機(樣例5發步驟7), LODOP.SET_PRINT_MODE("WINDOW_DEFPRINTER",打印機名稱或序號);這種寫到了和打印在一個任務里,誤認為該語句是指定該打印任務的打印機語句,就會出現這種現象。

如果想用語句修改windows默認打印機,應和打印任務分成兩個任務,控制不同的功能,例如樣例7任務內指定打印機,樣例5的步驟7里的單獨操作windows默認打印機。

現象
預覽的設置是該打印機,預覽下方狀態欄該紙張不生效。
(虛擬打印機也會表現為自定義紙張不生效)

現象原因
誤認為LODOP.SET_PRINT_MODE("WINDOW_DEFPRINTER",打印機名稱或序號);是在任務內指定打印機,寫到了任務里,導致出現這個現象。

測試代碼 :

    <script language="javascript" src="LodopFuncs.js"></script>
  <title>Document</title>
 </head>
 <body>
<a href="javascript:prn1_preview()">預覽效果1(自定義紙張無效)</a><br>
<a href="javascript:prn2_preview()">預覽效果2(自定義紙張有效)</a><br>
<script language="javascript" type="text/javascript">   
        var LODOP; //聲明為全局變量 
    function prn1_preview() {//測試錯誤寫法
        LODOP=getLodop(); 
        LODOP.PRINT_INIT("");
        LODOP.SET_PRINT_PAGESIZE(1,1100,2000,"");  
        LODOP.SET_PRINT_MODE("WINDOW_DEFPRINTER","Microsoft XPS Document Writer");//錯誤寫法,測試用
        LODOP.ADD_PRINT_TEXT(0,0,100,20,"文本內容一");//然后多個ADD語句及SET語
        //LODOP.PRINT_DESIGN();
        LODOP.PREVIEW();    
    };
    function prn2_preview() {
        LODOP=getLodop(); 
        LODOP.PRINT_INIT("");
        LODOP.SET_PRINT_PAGESIZE(1,1100,2000,"");  
        LODOP.SET_PRINTER_INDEX("Microsoft XPS Document Writer");
        LODOP.ADD_PRINT_TEXT(0,0,100,20,"文本內容一");//然后多個ADD語句及SET語
        //LODOP.PRINT_DESIGN();
        LODOP.PREVIEW();    
    };
</script> 
 </body>

圖示:

 

 


免責聲明!

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



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