Visual Basic - Technik, FAQ, Tricks, Beispiele

Home / Workshops / PDF / clsPDF

VB-Klasse für die PDF-Generierung

Historie
20.07.2007Koordinatenangaben auf Single (statt Integer) umgestellt, um genauere Positionierung zu erlauben
22.05.2005DrawPicture
24.04.2005DrawCurveTo, DrawCircle, DrawShape, FillMode
11.04.2005DrawText, DrawLineTo, MoveTo
05.04.2005DrawBox, DrawLine, DrawWidth, DrawColor, FillColor, PageStarted, PageFinished, PageNumber, LineNumber
24.03.2005LeftMargin, TopMargin
04.03.2005PaperSize, Orientation, Height, Width
13.02.2005Erste Version auf Grundlage des Prototypen von Michael Reinold.

Dokumentation

Das komplette VB-Projekt mit allen Beispielen: Download der Komponente...

Eigenschaften

DrawColor = Long

Welche Farbe (als RGB-Wert) sollen Linien haben? (Default: vbBlack)

DrawWidth = Single

Wie dick (in Points) sollen Linien sein? (Default: 1)

DropBlankPages = Boolean

Sollen leere Seiten unterdrückt werden? (Default: True)

FillColor = Long

Welche Farbe (als RGB-Wert) sollen Flächen haben? (Default: vbBlack)

FillMode = pdfFillModes

Gibt an, wie Formen gezeichnet werden sollen: pdfFill (nur ausgefüllt), pdfStroke (nur Linie), pdfFillStroke (ausgefüllt mit Umriss), pdfCloseStroke (nur Umriss, ggf. offene Linie wird geschlossen). (Default: pdfStroke)

FontSize = Integer

Mit welcher Zeichensatzgröße (in Points) sollen die Ausgaben der folgenden Seiten erfolgen? (Default: 10)

Height = Integer

Wie hoch (in Points) soll das Dokument sein? (Default durch PaperSize = pdfA4)

LeftMargin = Integer

Wie gross soll der linke Rand (in Points) sein? (Default: 80)

LineNumber = Long

Gibt die aktuelle Zeilennummer der gerade generierten Seite an. (Read Only)

LinesPerPage = Integer

Wieviele Zeilen sollen auf die folgenden Seiten ausgegeben werden? (Default: 72)

NewPageString = String

Welche Zeichenkette markiert im ASCII-Text "harte" Seitenumbrüche? (Default: vbFormFeed)

Orientation = pdfOrientations

Ausrichtung des Dokuments: pdfPortrait, pdfLandscape. (Default: pdfPortrait = hochkant)

PageNumber = Long

Gibt die aktuelle Seitenzahl an. (Read Only)

PaperSize = pdfPaperSizes

Format des Dokuments: pdfUser, pdfA0 bis pdfA7 (Default: pdfA4)

TopMargin = Integer

Wie gross soll der obere Rand (in Points) sein? (Default: 60)

Value

Gibt das bisher generierte PDF-Dokument als Zeichenkette zurück. (Read Only)

Width = Integer

Wie breit (in Points) soll das Dokument sein? (Default durch PaperSize = pdfA4)

Methoden

Wie beim Printer-Objekt erfolgt auch in dieser Klasse kein automatischer Zeilenumbruch! Die ggf. vorhandenen Zeilenvorschub-Zeichenketten werden aber automatisch festgestellt und berücksichtigt.

Ein Seitenumbruch erfolgt dagegen - abhängig von LinesPerPage - automatisch.

Clear [FontSize][, LinesPerPage]

Setzt ein PDF-Objekt zurück, so dass ein völlig neues PDF-Dokument erstellt werden kann.
Optional können FontSize und LinesPerPage für das neue Dokument angegeben werden.

PrintLine Zeile

Fügt eine Zeile an das Ende des PDF-Dokuments hinzu.

PrintText Text

Fügt einen längeren Text (also mehrere Zeilen) an das Ende des PDF-Dokuments hinzu.

PrintFile PathTXT

Fügt den Inhalt einer Textdatei an das Ende des PDF-Dokuments hinzu.

DrawBox x, y, Width, Height [, FillMode]

Zeichnet ein Rechteck (s. DrawColor und FillColor).
Optional kann das Rechteck ausgefüllt werden (s. FillMode).

DrawCircle x, y, r [, FillMode]

Zeichnet einen Kreis (s. DrawColor und FillColor).
Optional kann der Kreis ausgefüllt werden (s. FillMode).

DrawCurveTo x1, y1, x2, y2, x3, y3

Verlängert ein Shape (Form) durch eine kubische Bezierkurve nach x3,y3.

DrawLine x1, y1, x2, y2

Zeichnet eine Linie (s. DrawColor).

DrawLineTo x, y

Verlängert ein Shape (Form) durch eine Linie nach x,y.

DrawPicture x, y, Width, Height, Pic [, ForceGrey]

Zeichnet ein Bild (übergeben als Dateiname, Picture-Objekt oder Picture-Handle) an die Position x,y mit der angegebenen Größe (in Points); mit negativen Größenangaben kann das Bild horizontal und/oder vertikal gespiegelt werden.
Optional kann das Bild "farblos" (also in grau) dargestellt werden.

DrawShape [FillMode]

Zeichnet ein mit DrawLineTo und DrawCurveTo spezifiziertes Shape (Form) (s. DrawColor und FillColor).
Optional kann das Shape (Form) ausgefüllt werden (s. FillMode).

DrawText x, y, Text, [, Angle]

Zeichnet einen Text (s.a. FillColor).
Optional kann ein Winkel (in Radiant) angegeben werden.

MoveTo x, y

Setzt den Anfangspunkt für ein Shape (Form) (s. DrawShape).

NewPage [FontSize][, LinesPerPage]

Erzwingt einen Seitenumbruch, d.h. eine neue Seite wird begonnen.
Optional können FontSize und LinesPerPage für das neue Dokument angegeben werden.

SavePDF PathPDF

Speichert das bisher generierte PDF-Dokument als Datei.
Die Dateiendung ".pdf" wird nicht automatisch angehängt!

Ereignisse

PageStarted

Wird ausgelöst, sobald eine neue Seite begonnen wird.
Sie dürfen keine Print...-Methoden in diesem Ereignis verwenden (aber natürlich DrawText und co.)!

PageFinished

Wird ausgelöst, sobald eine Seite voll ist (s. LinesPerPage).
Sie dürfen keine Print...-Methoden in diesem Ereignis verwenden (aber natürlich DrawText und co.)!

Das VB-Projekt "PDF-Generierung"

Quelltext

Der Quelltext der hier entwickelten PDF-Klasse beruht u.a. auf der Grundlagenforschung (und dem Prototypen) von Michael Reinold (GGRZ Hagen).
Vielen Dank dafür! freu

Download

Das folgende Zip-Archiv enthält ein Demo-Projekt (ab VB5), welches u.a. alle notwendigen Komponenten für die PDF-Generierung enthält:
pdf.zip (14 KB, Stand: 20.07.2007)


...>>

© Jost Schwider, 13.02.2005-05.04.2008 - http://vb-tec.de/clspdf.htm