Dieses Beispiel zeigt Ihnen wie Sie aus einer VB6 Anwendung heraus ein PDF erzeugen.

Wenn der Code ausgeführt wird, so wird das VB6 Drucksystem zur Erzeugung des Printjobs verwendet. Dieser Job wird an den PDF Drucker gesendet der schlussendlich das PDF erzeugt. Die PDF Erzeugung berücksichtigt die Einstellungen die in der runonce.ini Konfigurationsdatei festgelegt wurden bevor der Druck startet.

Nachdem der Druckjob an den Drucker/Spooler gesendet wurde wartet der Code auf das Erscheinen der runonce.ini Datei. Das stellt sicher, dass der Anwender nicht doppelt auf den Button klickt bevor die aktuell gesetzten Einstellungen vom PDF Drucker gelesen wurden.

  1. Option Explicit
  2.  
  3. Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
  4.  
  5. Const SETTINGS_PROGID = "Pdf7.PDFSettings"
  6. Const UTIL_PROGID = "Pdf7.PDFUtil"
  7.  
  8. Private Function PrinterIndex(ByVal printerName As String) As Integer
  9.     Dim i As Integer
  10.  
  11.     For i = 0 To Printers.Count - 1
  12.         If LCase(Printers(i).DeviceName) Like LCase(printerName) Then
  13.             PrinterIndex = i
  14.             Exit Function
  15.         End If
  16.     Next
  17.     PrinterIndex = -1
  18. End Function
  19.  
  20. Private Sub cmdPrint_Click()
  21.     Dim prtidx As Integer
  22.     Dim sPrinterName As String
  23.     Dim settings As Object
  24.     Dim util As Object
  25.  
  26.     Set util = CreateObject(UTIL_PROGID)
  27.     sPrinterName = util.defaultprintername
  28.  
  29.     Rem -- Configure the PDF print job
  30.     Set settings = CreateObject(SETTINGS_PROGID)
  31.     settings.printerName = sPrinterName
  32.     settings.SetValue "Output", "\myfile.pdf"
  33.     settings.SetValue "ConfirmOverwrite", "no"
  34.     settings.SetValue "ShowSaveAS", "never"
  35.     settings.SetValue "ShowSettings", "never"
  36.     settings.SetValue "ShowPDF", "no"
  37.     settings.SetValue "RememberLastFileName", "no"
  38.     settings.SetValue "RememberLastFolderName", "no"
  39.     settings.WriteSettings True
  40.  
  41.     Rem -- Find the index of the printer
  42.     prtidx = PrinterIndex(sPrinterName)
  43.     If prtidx < 0 Then Err.Raise 1000, , "No printer was found by the name of '" & sPrinterName & "'."
  44.  
  45.     Rem -- Set the current printer
  46.     Set Printer = Printers(prtidx)
  47.  
  48.     Rem -- Print something
  49.     Printer.FontSize = 50
  50.     Printer.Print "Hello VB6..."
  51.     Printer.FontSize = 20
  52.     Printer.ForeColor = vbBlue
  53.     Printer.Print "The time is " & Now
  54.     Printer.EndDoc
  55.  
  56.     Rem -- Wait for runonce settings file to disappear
  57.     Dim runonce As String
  58.     runonce = settings.GetSettingsFilePath(True)
  59.     While Dir(runonce, vbNormal) <> ""
  60.         Sleep 100
  61.     Wend
  62.  
  63.     MsgBox "myfile.pdf was saved on your desktop", vbInformation, "PDF Created"
  64. End Sub

Downloads

Anhang Größe
Codebeispiel herunterladen 2.26 KB

Top