如何以ZPL格式打印報(bào)告
FastReport .Net 2018.1版本具有新的ZPL(Zebra編程語言)格式輸出。此格式旨在與特殊標(biāo)簽打印機(jī)配合使用。關(guān)于ZPL的更多信息可以在文章“頁面描述語言——ZPL”中找到。
在需要在標(biāo)簽打印機(jī)上打印的開發(fā)報(bào)告時(shí),應(yīng)考慮以下幾點(diǎn):
- 頁面大小必須與標(biāo)簽大小相匹配,您可以在報(bào)表菜單的頁面設(shè)置中調(diào)整報(bào)表設(shè)計(jì)器中的尺寸;
- 也要考慮頁面大小設(shè)置窗口中指定的字段——如果您需要靠近標(biāo)簽邊緣進(jìn)行打印,則需要將字段設(shè)置為0;
- 每個(gè)生成的報(bào)告頁面將作為單獨(dú)的標(biāo)簽發(fā)送到打印機(jī);
- 制定報(bào)告時(shí),應(yīng)遵守黑白配色方案。
您可以使用預(yù)覽窗口中的一組ZPL命令創(chuàng)建一個(gè)文件。
- Density 參數(shù)負(fù)責(zé)打印密度,每毫米點(diǎn)數(shù)。根據(jù)將來打印標(biāo)簽的打印機(jī)選擇濃度。
- “Print As Bitmap”復(fù)選框表示報(bào)表圖像的每個(gè)像素副本將發(fā)送到打印機(jī)。換句話說,報(bào)告的黑白圖像將生成并以ZPL格式保存為圖片。如果此復(fù)選框被禁用,報(bào)告對(duì)象將被保存為一系列ZPL命令。文本值以UTF-8編碼存儲(chǔ),條形碼(ZPL中具有相應(yīng)模擬值的條形碼)作為單獨(dú)的命令傳輸。應(yīng)該記住,當(dāng)將報(bào)告打印為圖片時(shí),即使條形碼看起來與我們?cè)趫?bào)告中得到的內(nèi)容完全相同,也是無法讀取的。這種條形碼行為的原因是由于條形碼對(duì)象縮放造成的線條粗細(xì)比例錯(cuò)誤。為避免讀取條形碼時(shí)出錯(cuò),應(yīng)禁用“Print As Bitmap”模式,但在這種情況下,條形碼的外觀可能與我們?cè)陬A(yù)覽窗口中看到的不一致。
- Font Scale參數(shù)負(fù)責(zé)縮放字體大小。
如果沒有標(biāo)簽打印機(jī)可用或出于經(jīng)濟(jì)目的,您可以在聯(lián)機(jī)ZPL查看器(http://www.labelary.com/viewer.html)中測(cè)試保存的文件——在任何文本編輯器中使用擴(kuò)展名*. Zpl打開生成的文件,將其復(fù)制到網(wǎng)站上的文本框中,然后單擊Redraw 按鈕。
您可以在ZPL中進(jìn)行其他導(dǎo)出設(shè)置,并從程序代碼直接將其發(fā)送到標(biāo)簽打印機(jī)。查看\ Demos \ C # \ PrintZPL文件夾中的演示程序。
這是它的主要形式的樣子:
首先,您選擇一個(gè)報(bào)告模板,然后設(shè)置導(dǎo)出選項(xiàng)并選擇要打印的打印機(jī)。它應(yīng)該是支持ZPL命令系統(tǒng)的打印機(jī)——在我們的例子中是Zebra ZD420打印機(jī)。
在程序代碼中,您可以看到如何以ZPL格式控制導(dǎo)出設(shè)置——ZplExport類的對(duì)象的屬性:
屬性 | 描述 |
---|---|
ZplExport.Density | 打印密度取決于打印機(jī)型號(hào)。
可能的值:
ZplExport.ZplDensity.d6_dpmm_152_dpi,
ZplExport.ZplDensity.d8_dpmm_203_dpi,
ZplExport.ZplDensity.d12_dpmm_300_dpi,
ZplExport.ZplDensity.d24_dpmm_600_dpi. |
ZplExport.CodePage | ZPL語言中用于定義字符編碼的命令。打印標(biāo)簽之前,它每次發(fā)送到打印機(jī)。默認(rèn)情況下,它包含字符串“^ CI28”,對(duì)應(yīng)于UTF-8編碼。 |
ZplExport.FontScale | 縮放字體大小。默認(rèn)值是1。 |
ZplExport.PrinterFont | 指示字體類型的字符串,默認(rèn)為“A”。 |
ZplExport.PrintAsBitmap | 打印為位圖。默認(rèn)設(shè)置為true。 |
ZplExport.PrinterInit | 包含一組命令的字符串,將在報(bào)告打印之前發(fā)送一次到打印機(jī)??捎糜谠O(shè)置方向、覆蓋字體或其他打印機(jī)設(shè)置。 |
ZplExport.PrinterFinish | 包含一組命令的字符串,打印報(bào)告后將被發(fā)送到打印機(jī)。 |
ZplExport.PageInit | 包含一組命令的字符串,在打印每個(gè)標(biāo)簽之前將被發(fā)送到打印機(jī)。 |
發(fā)送到打印是通過使用FastReport.Export.Text.TextExportPrint.PrintStream方法完成的,該方法將帶有ZPL命令的指令流傳遞到打印機(jī)的打印隊(duì)列。
產(chǎn)品介紹 | 下載試用 | 優(yōu)惠活動(dòng) | 在線客服 | 聯(lián)系Elyn