Cet exemple vous montre comment créer un PDF à partir d'une application VB6.

Lorsque le code est exécuté, le système d'impression VB6 est utilisé pour générer le travail d'impression. Ce travail est envoyé à l'imprimante PDF, qui crée finalement le PDF. La génération PDF prend en compte les paramètres qui ont été spécifiés dans le fichier de configuration runonce.ini avant le démarrage de l'impression.

Une fois le travail d'impression envoyé à l'imprimante / spouleur, le code attend que le fichier runonce.ini s'affiche. Cela garantit que l'utilisateur ne double-clique pas sur le bouton avant que les paramètres actuellement définis aient été lus par l'imprimante PDF.

  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

Téléchargements

appendice taille
Télécharger l'exemple de code 2.26 KB

Top