Управление меткой FedEx в API vb.net

Я пишу FedEx API в vb.net для работы с нашей базой данных юниверсов. Пока что все готово, но я застрял на печатной этикетке. Код, который дал мне FedEx, сохраняет изображение этикетки в формате PDF и распечатывает с акробата. Проблема в том, что вы ничего не можете сделать с 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

2 ответа

Решение

Если на экране он выглядит нормально, но на принтере не выровнен, то вам, вероятно, следует обратиться к настройкам принтера как на самом устройстве, так и в драйвере. Я бы с водителем, вам, вероятно, нужно конкретизировать СМИ и, возможно, настроить поля.

Крис, если это еще не решено, проверьте этот FAQ из нашей базы данных в 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.

Затем создайте сценарий print.cmd на лету из vb для выполнения...

COPY /B tracking_id.zpl \\localhost\FedexThermal

Затем в vb создайте процесс для запуска этого сценария,

Работает на меня.

Другие вопросы по тегам