4

我正在使用 iTextSharp 创建运输标签。

我正在做的是在 PDF 中创建一个标签,这样我就可以以任何我想要的方式对其进行格式化,然后将其发送到我的热敏打印机。

我的问题是,我的标签尺寸为 4x6(标准运输标签)。这些是我们在 UPS 和 Fedex 包裹上看到的标签。如何使我的 PDF 完全适合 4x6 英寸?目前它正在以普通 A4 文件打印。

我正在使用以下内容:

Dim document As New Document()
document.SetPageSize(PageSize.A4_LANDSCAPE)
4

3 回答 3

10

设置自定义页面大小:

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。

https://stackoverflow.com/a/2503476/102937

于 2012-12-28T22:32:44.263 回答
2

我建议制作原始打印机语言。热敏条码打印机都有母语。ZPLII(Zebra 打印机语言 2)或 DPL(Datamax 打印机语言)等语言。您可以将它们构建为字符串并将它们直接传递给打印机。搜索打印机制造商网站,您可以快速找到您正在使用的打印机的打印机语言手册。

这种方法的最大优点是控制和速度。由于 Zebras 和 Datamax 打印机实际上并不关心页面大小,您可以专注于以您想要的大小和方向呈现您想要的数据。

您还可以利用打印机拥有的一些额外逻辑。这对于具有顺序编号的序列化标签特别有用。发送到打印机的单个字符串可以生成数十到数百个标签。如果您要进行大量热敏条形码打印,我强烈建议您了解这些打印机在其母语中的强大功能。

于 2012-12-29T05:31:05.577 回答
1

设置文档大小使用如下: -

 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 });

我刚刚添加了其他属性供您将来使用。

编码快乐!!

于 2012-12-29T06:38:38.887 回答