我正在使用iTextSharp创建运输标签。
我正在做的是创建一个PDF格式的标签,这样我就可以以任何我想要的方式格式化它,然后将它发送到我的热敏打印机。
我的问题是,我的标签尺寸是4x6 (标准运输标签)。这些是我们在UPS和联邦快递包裹上看到的标签。如何使我的PDF完全适合4x6英寸的大小?目前它正在以常规的A4文档进行打印。
我正在使用以下代码:
Dim document As New Document()
document.SetPageSize(PageSize.A4_LANDSCAPE)
发布于 2012-12-29 06:32:44
设置自定义页面大小:
Dim pgSize As New iTextSharp.text.Rectangle(myWidth, myHeight)
Dim doc As New iTextSharp.text.Document(pgSize, leftMargin, rightMargin, topMargin, bottomMargin)
iTextSharp每英寸使用72像素,因此,如果您知道所需页面大小的高度和宽度(以英寸为单位),只需将这些数字乘以72即可得到myWidth和myHeight。
发布于 2012-12-29 13:31:06
我建议生成原始的打印机语言。热敏条形码打印机都有一种本地语言。诸如ZPLII (Zebra Printer Language 2)或DPL (Datamax Printer Language)等语言。您可以将它们构建为字符串,并将它们直接传递给打印机。搜索打印机制造商网站,您可以快速找到您正在使用的打印机的打印机语言手册。
这种方法的最大优点是控制和速度。由于Zebras和Datamax打印机实际上并不关心页面大小,因此您可以专注于以所需的大小和方向呈现所需的数据。
您还可以利用打印机具有的一些额外逻辑。这对于具有顺序编号的序列化标记特别有用。发送到打印机的单个字符串可以产生数十到数百个标签。如果您要进行大量的热敏条形码打印,我强烈建议您了解这些打印机在其母语中所包含的强大功能。
发布于 2012-12-29 14:38:39
要设置文档大小,请使用以下命令:-
Document doc = new Document(new iTextSharp.text.Rectangle(295f, 420f), 0f, 0f, 0f, 0f);
PdfWriter.GetInstance(doc, Response.OutputStream);
doc.Open();
-----------
-----
---------
对于字体,代码如下:-
iTextSharp.text.Font myFont1 = new iTextSharp.text.Font() { Size = 4.5f };
PdfPTable header1 = new PdfPTable(2);
header1.AddCell(new PdfPCell(new Phrase("", myFont1 )) { UseAscender = true, PaddingTop = 0, Border = 0, HorizontalAlignment = 0 });
我刚刚添加了其他属性的信息,供您将来使用。
编码快乐!!
https://stackoverflow.com/questions/14076570
复制相似问题