在 vb.net API 中操纵 FedEx 标签

Manipulating FedEx label in vb.net API

我正在 vb.net 写一个 FedEx API 来处理我们的 universe 数据库。到目前为止,一切都快完成了,但我还停留在打印标签部分。 FedEx 给我的代码将标签图像保存为 pdf 并从 acrobat 打印。问题是你真的不能用 pdf 图像做任何事情,或者我至少可以肯定,这意味着我不能在 4 x 6 热敏标签上正确排列图像。我该怎么做,或者有什么好方法可以只使用图像并分配 x 和 y 坐标而不会弄乱 FedEx 标签?这是将标签保存到打印位置的代码:

Sub ShowShipmentLabels(ByRef CompletedShipmentDetail As CompletedShipmentDetail, ByRef packageDetail As CompletedPackageDetail, ByVal isCodShipment As Boolean)
        If (packageDetail.Label.Parts(0).Image IsNot Nothing) Then
            ' Save outbound shipping label
            Dim FileName As String = getProperty("labelpath") + packageDetail.TrackingIds(0).TrackingNumber + ".pdf"

            SaveLabel(FileName, packageDetail.Label.Parts(0).Image)
            Mylabel.Print()

            ' Save COD Return label
            If (isCodShipment) Then
                FileName = getProperty("labelpath") + CompletedShipmentDetail.CompletedPackageDetails(0).TrackingIds(0).TrackingNumber + "CR.pdf"
                SaveLabel(FileName, CompletedShipmentDetail.CompletedPackageDetails(0).CodReturnDetail.Label.Parts(0).Image)
            End If
        End If

    End Sub
Sub SaveLabel(ByRef labelFileName As String, ByRef labelBuffer() As Byte)
        ' Save label buffer to file
        Dim LabelFile As FileStream = New FileStream(labelFileName, FileMode.Create)
        LabelFile.Write(labelBuffer, 0, labelBuffer.Length)
        LabelFile.Close()
        ' Display label in Acrobat
        DisplayLabel(labelFileName)
    End Sub

    Sub DisplayLabel(ByRef labelFileName As String)
        Dim info As System.Diagnostics.ProcessStartInfo = New System.Diagnostics.ProcessStartInfo(labelFileName)
        info.UseShellExecute = True
        info.CreateNoWindow = True
        info.WindowStyle = ProcessWindowStyle.Hidden
        info.Verb = "Print"
        System.Diagnostics.Process.Start(info)
    End Sub

如果它在屏幕上看起来不错,但在打印机上没有正确对齐,那么您可能应该查看设备本身或驱动程序中的打印机设置。我会和驱动程序一起使用,您可能需要指定媒体并可能调整边距。

Chris,如果这个问题还没有解决,请在 Shippo: http://support.goshippo.com/hc/en-us/articles/203804319-My-labels-are-not-printing-correctly-How-can-I-fix-this-

的数据库中查看此常见问题解答

一开始打印 4x6 可能有点头疼。如果它还不适合您,请随时评论您使用的打印机和打印机设置的更多详细信息。这将有助于进一步调试。

您可以选择以 ZPLII 格式保存图像。这样做并将其另存为 tracking_id.zpl.

将 Zebra 打印机共享为 FedexThermal。

然后在他从vb飞来执行时创建一个print.cmd脚本...

COPY /B tracking_id.zpl \localhost\FedexThermal

然后在 vb 中为 运行 该脚本创建一个进程,

适合我。