Изменение настроек драйвера для печати PDF

Как я могу изменить настройки своего принтера (драйвера) перед печатью PDF?

Чтобы быть более конкретным - я хочу заставить свой драйвер принтера использовать настройки принтера вместо значений по умолчанию для драйвера - по сути, это эквивалент щелчка "Свойства" в окне "Печать" (в котором открываются специфические для принтера настройки), затем "Расширенные настройки" и отметки "Использовать настройки принтера". msgstr "флажок, который по умолчанию не отмечен.

Но это может быть что угодно, например, изменение режима дизеринга в принтере.

Вот функциональный код, который я сейчас использую для печати PDF с помощью сетевого принтера:

Dim PrinterName As String = "\\MyNetwork\ZDesigner ZM400 200 dpi (ZPL)"
Dim WshNetwork = CreateObject("WScript.Network")
WshNetwork.SetDefaultPrinter(PrinterName)

Dim PrintingPageSettings As New Printing.PageSettings()
Me.Text = PrintingPageSettings.PrinterSettings.PrinterName()

Dim isInstalled As Boolean = False
For Each InstalledPrinter As String In Printing.PrinterSettings.InstalledPrinters()
    If (PrintingPageSettings.PrinterSettings.PrinterName() = InstalledPrinter.ToString) Then
        isInstalled = True
    End If
Next
If (isInstalled) Then
    AdobeAcrobatCOM.src = Path
    AdobeAcrobatCOM.printAll()
Else
    Me.Text = PrinterName & " not found"
End If

AdobeAcrobatCOM является AxAcroPDFLib.AxAcroPDF (Adobe PDF Reader от Toolbox, компоненты COM)

1 ответ

Решение

В конце концов я использовал TCP-соединение с принтером и распечатал его таким образом. Вот пример кода:

    Dim PrintString As String
    Dim ipAddress As String
    Dim port As Integer

    '123123 is sample integer, "TESTstring" is sample string, Space(2) is sample of adding (two) spaces
    PrintString = String.Concat("^XA", "^FO060,080", "^BXN,5,200", "^FD", "TESTstring", 123123, "%^FS", "^FO160,100", "^ACourier,14,14", "^FD", Space(2), "^FS", "^XZ")
    ipAddress = "ZDesigner ZM400 200 dpi (ZPL)" 'yes, this works too
    port = 9100

    'Open Connection
    Dim client As New System.Net.Sockets.TcpClient
    client.Connect(ipAddress, port)

    'Write ZPL String to Connection
    Dim writer As New System.IO.StreamWriter(client.GetStream())
    writer.Write(PrintString)
    writer.Flush()

    'Close Connection
    writer.Close()
    client.Close()

Возможно, вы захотите поискать документацию к вашему принтеру. Вот пример C# для Zebra.

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