Create a PDF from Visual Basic 6 (VB6)
This example will show you how to print from VB6 to a PDF document.
Example Source Files
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Const PDF_PRINTERNAME = "PDF Writer - bioPDF"
Const PRINTER_PROGID = "bioPDF.PDFPrinterSettings"
Private Function PrinterIndex(ByVal printername As String) As Integer
Dim i As Integer
For i = 0 To Printers.Count - 1
If LCase(Printers(i).DeviceName) Like LCase(printername) Then
PrinterIndex = i
Exit Function
End If
Next
PrinterIndex = -1
End Function
Private Sub cmdPrint_Click()
Dim prtidx As Integer
Dim obj As Object
Rem -- Configure the PDF print job
Set obj = CreateObject(PRINTER_PROGID)
obj.SetValue "Output", "<desktop>\myfile.pdf"
obj.SetValue "ConfirmOverwrite", "no"
obj.SetValue "ShowSaveAS", "never"
obj.SetValue "ShowSettings", "never"
obj.SetValue "ShowPDF", "yes"
obj.SetValue "RememberLastFileName", "no"
obj.SetValue "RememberLastFolderName", "no"
obj.WriteSettings True
Rem -- Find the index of the printer
prtidx = PrinterIndex(PDF_PRINTERNAME)
If prtidx < 0 Then Err.Raise 1000, , "No printer was found by the name of '" & PDF_PRINTERNAME & "'."
Rem -- Set the current printer
Set Printer = Printers(prtidx)
Rem -- Print something
Printer.FontSize = 50
Printer.Print "Hello VB6..."
Printer.EndDoc
Rem -- Wait for runonce settings file to disappear
Dim runonce As String
runonce = obj.GetSettingsFileName(True)
While Dir(runonce, vbNormal) <> ""
Sleep 100
Wend
End Sub
|