Tipp 0415 PDF-Dateien erstellen
Autor/Einsender:
Datum:
  Frank Grimm
12.09.2004
Entwicklungsumgebung:   VB 6
Mit Visual Basic-"Bordmitteln" ist es durchaus möglich, PDF-Dateien zu erzeugen.
Dieser Tipp bedient sich dazu des Klassenmoduls von Marco Nicolato, die die verschiedensten Möglichkeiten der Textformatierung, darunter Schriftart (nur in der deutschsprachigen Version), Schrifttyp und -größe, und Textrotation, bietet.
Die mit der Klasse erstellten PDF-Dateien wurden mit dem Acrobat Reader® in den Versionen 4, 5 und 6 getestet.
Code im Codebereich der Form
 
Option Explicit

Private Sub CreatePDFFile(ByVal FileName As String)
'Beispiel-PDF-Datei schreiben
 
  'Prüfen, ob in die Datei geschrieben werden kann
    If IsFileInUse(FileName) Then Exit Sub

  'Neue Instanz der Klasse erstellen
    Dim myPDF As VB2PDF
    Set myPDF = New VB2PDF

  'Papiergröße zuweisen
    myPDF.PaperSize = pdfA4

  'Titel zuweisen
    myPDF.Title = "PDF-Beispiel"

  'Produzent zuweisen
    myPDF.Producer = "VB-fun"

  'Autor zuweisen
    myPDF.Author = "VB-fun-Tipp"

  'Thema zuweisen
    myPDF.Subject = "PDF-Dateien erstellen"

  'Dateinamen zuweisen
    myPDF.FileName = FileName

  'Schriftgröße zuweisen
    myPDF.FontSize = 11

  'Vertikalen Zeilenabstand setzen
    myPDF.VertSpace = 13

  'Schriftart zuweisen
    myPDF.FontFace = pdfCourier

  'PDF-Header schreiben
    myPDF.StartPDF

  'Einige Zeilen mit verschiedenen Einstellungen schreiben
    myPDF.WritePDF "Hallo Welt !", True
    myPDF.WritePDF "", True
    myPDF.WritePDF "Das ist eine neue Zeile.", True
    myPDF.WritePDF "Es ist fette ", True, pdfBold
    myPDF.WritePDF "und ", False
    myPDF.WritePDF "kursive Schrift möglich ", False, pdfItalic
    myPDF.WritePDF "oder ", False
    myPDF.WritePDF "beides gleichzeitig!", False, pdfBoldItalic
    myPDF.WritePDF "Und das alles in einer Zeile...", True

  'Beispiel für Text-Rotation
    myPDF.WritePDF "", True
    myPDF.WritePDF "Beispiel für Text-Rotation:", True, pdfBold

    Dim i As Long
    For i = 0 To 345 Step 15
        myPDF.SetOrigin 300, 450, i
        myPDF.WritePDF "--- COOL --- um " & CStr(i) & _
              "° gedrehter Text", False, pdfRegular
    Next

  'Text-Position neu setzen
    myPDF.SetOrigin myPDF.LeftMargin, 200

  'Text ausgeben
    myPDF.WritePDF "Ende - Text-Rotation", True, pdfBold

    myPDF.WritePDF "", True
    myPDF.WritePDF "Auf der 2. Seite geht's weiter...", True

  'Neue Seite beginnen
    myPDF.NewPage

  'Die neue Seite mit Inhalt füllen
    myPDF.WritePDF "Und hier ist eine neue Seite!", True
    myPDF.WritePDF "", True
    myPDF.WritePDF "Auch Sonderzeichen sind kein Problem: ", True
    myPDF.WritePDF Chr(34) & "%!§$§%)", False
    myPDF.WritePDF "Umlaute (äöüÄÖÜ) auch nicht...", True

  'PDF-Datei abschließen
    myPDF.EndPDF

  'Verweis (Speicher) freigeben
    Set myPDF = Nothing

    MsgBox "Beispiel PDF wurde erfolgreich abgeschlossen", _
          vbInformation + vbOKOnly, "Information:"
End Sub

Private Function IsFileInUse(ByVal FileName As String) As Boolean
'Prüfen, ob die Datei evtl. in Verwendung ist
  Dim n As Integer

  On Error Resume Next
  Err.Clear
  n = FreeFile
  Open FileName For Output As #n
  Close #n

  If Err.Number <> 0 Then
    IsFileInUse = True
    MsgBox "Bitte stellen Sie sicher, dass die Datei '" & _
          FileName & "' nicht in Verwendung ist!", _
          vbOKOnly + vbCritical
  End If
  On Error GoTo 0
End Function
 
Beispiel-Aufruf
 
Call CreatePDFFile("e:\temp\beispiel.pdf")
 
Hinweis für VBA-Anwender
Der hier abgebildete Code funktioniert auch in einem VBA 6-Projekt (ab Office 2000), dieser muss dazu lediglich in den VB-Editor der entsprechenden Anwendung kopiert werden. Das Klassenmodul (vb2pdf.cls) im Download kann in der entsprechenden Anwendung im VB-Editor importiert werden und 1:1 übernommen werden. Ein Import der im Download enthaltenen *.frm-Datei ist nicht möglich.
Hinweis
Um diesen Tipp ausführen zu können, wird das im Download enthaltene Klassenmodul (vb2pdf.cls) benötigt, das im VB- bzw. VBA-Projekt importiert werden kann.
Die Klasse ist E-Mail-Ware, näheres dazu finden Sie in der Readme-Datei, die dem Projekt beiliegt. Eine Version mit englischsprachigen Kommentaren steht auf der Website des Autors zum Download bereit.

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (12,2 kB) Downloads bisher: [ 4844 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Samstag, 20. August 2011