Получение меток в правильном формате
API FedEx & UPS предоставляют опции для получения определенных типов тепловой маркировки. Вы будете биться головой о клавиатуру, пытаясь заставить PDF-файлы правильно печатать на термопринтерах.
Некоторые распространенные термические типы EPL / EPL2, ZPL / ZPLII. Большинство термопринтеров принимают документы, соответствующие одному из этих типов.
Для FedEx что-то подобное в вашем ShipRequest - это использование FedEx WSDL для доставки.
RequestedShipment.LabelSpecification.ImageType = FedExShipService.LabelSpecificationImageType.ZPLII
И UPS - Создание XML для отправки в службу UPS.
<LabelSpecification>
<LabelPrintMethod>
EPL2
</LabelPrintMethod>
</LabelSpecification>
Печать этикеток
Вам необходимо будет отправлять «сырые» данные на принтер. Я начал с этой статьи и принял ее к своему решению. Например, FedEx возвращает байтовый массив, который содержит информацию метки - я преобразую это в строку и затем отправляю на принтер.
'Convert from Byte Array to String
Dim enc As System.Text.ASCIIEncoding = New System.Text.ASCIIEncoding()
Dim strConverter As String = enc.GetString(<ByteArrayFromFedEx>)
http://www.paulaspinall.com/post/2008/05/31/Sending-data-direct-to-a-printer.aspx
На SO также есть еще одна тема на эту тему.
Отправка необработанных данных на принтер этикеток FedEx