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

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

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

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

Вот работающий код, который я использую прямо сейчас для печати 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)


person MarcinWolny    schedule 23.02.2015    source источник
comment
nicholas.piasecki.name / blog / 2008/11 /   -  person Sam Makin    schedule 09.03.2015
comment
stackoverflow.com/a/12157505/2319909   -  person Sam Makin    schedule 09.03.2015
comment
msdn.microsoft.com/en-us/ библиотека / ff563612% 28v = VS.85% 29.aspx   -  person Sam Makin    schedule 10.03.2015


Ответы (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.

person MarcinWolny    schedule 17.07.2015