Изменение настроек драйвера для печати 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.