Inhaltsverzeichnis

23.12.1 Klasse PdfDocument (gb.poppler)

Diese Klasse repräsentiert ein PDF-Dokument. Sie ermöglicht es, seinen Inhalt zu lesen und zu rendern. Die Klasse verhält sich wie ein Nur-Lesen-Array. So erzeugen Sie aus einer PDF-Datei in Gambas ein neues PDF-Dokument vom Typ PdfDocument:

Dim hPdfDocument As PdfDocument
hPdfDocument = New PdfDocument ( Path As String [ , Owner As String, Password As String ] )

Mit Hilfe der Klasse PdfPage können Sie eine bestimmte Seite eines PDF-Dokumentes anhand ihres Indexes als virtuelles Objekt zurückgeben. Index ist dabei ein Wert zwischen 0 und dem Wert der Eigenschaft PdfDocument.Max = PdfDocument.Count -1.

Dim hPdfDocument As PdfDocument
Dim hPdfPage As PdfPage
hPdfPage = hPdfDocument [ Index As Integer ]

23.12.1.1 Eigenschaften

Die Klasse PdfDocument verfügt über die folgenden Eigenschaften:

EigenschaftDatentypBeschreibung
AntialiasingBooleanGibt den Wert zurück oder setzt, ob Antialiasing für das Zeichnen von Seiten verwendet wird oder nicht.
AuthorStringGibt den Autor des PDF-Dokuments zurück.
CountIntegerGibt die Anzahl der Seiten des PDF-Dokuments zurück.
MaxIntegerGibt die Anzahl der Seiten des Dokuments minus eins zurück; Max = Count -1.
CreationDateDateGibt das Datum der Erzeugung des PDF-Dokuments zurück.
CreatorStringGibt den Ersteller des PDF-Dokuments zurück.
ProducerStringGibt den Hersteller des PDF-Dokuments zurück.
Index .PdfDocumentIndexGibt den Index (Inhaltsverzeichnis) eines PDF-Dokuments als virtuelles Objekt vom Typ .PdfDocumentIndex zurück.
KeywordsStringGibt eine komma-separierte Liste als String zurück.
LinearizedBooleanGibt an, ob das Dokument linearisiert ist oder nicht. Die Linearisierung von PDF-Inhalt ermöglicht einen effizienten inkrementellen Zugriff auf die PDF-Datei in einer Netzwerkumgebung.
ModificationDateDateGibt das Datum der letzten Änderung des PDF-Dokuments zurück.
ResolutionFloatGibt die Auflösung des PDF-Dokuments in DPI zurück oder legt sie fest.
RotationIntegerLiefert oder setzt die globale Seitendrehung in Grad. Der Wert muss ein Vielfaches von 90 sein: 0, 90, 180 oder 270. Der Drehwinkel kann auch negativ wie zum Beispiel -90 sein.
SubjectStringGibt den Betreff des PDF-Dokuments zurück.
TextAntialiasingBooleanGibt den Wert zurück oder setzt, ob der Text beim Zeichnen einer Seite anti-aliased ist.
TextHintingBooleanGibt den Wert zurück oder setzt, ob beim Zeichnen einer Seite Texthinweise verwendet wurden.
TitleStringGibt den Titel des PDF-Dokuments zurück.
VersionStringGibt die Version des PDF-Dokuments als Zeichenfolge zurück.

Tabelle 23.12.1.1.1 : Eigenschaften der Klasse PdfDocument

Hinweise

sMessage = Format(Stat(FMain.DocumentPath).LastChange, "dd.mm.yyyy hh:nn:ss")
Print sMessage

23.12.1.2 Methoden

Die Klasse PdfDocument verfügt nur über eine Methode:

MethodeRückgabetypBeschreibung
Find ( Label As String )IntegerGib den Seitenindex der Seite zurück, die den Bezeichner 'Label' hat. Wurde keine Seite gefunden, so wird -1 zurückgegeben.

Tabelle 23.12.1.2.1 : Methode der Klasse PdfDocument

23.12.1.3 Exkurs

Auf der Seite https://wiki.ubuntuusers.de/poppler-utils/ finden Sie die kurze Beschreibung von Kommandozeilen-Programmen der Sammlung poppler-utils, mit denen Sie u.a. Informationen zu PDF-Dokumenten gewinnen oder diese zum Beispiel in eine XML-Datei konvertieren können.

Hier folgt ein Beispiel für das Auslesen der in einem PDF-Dokument verwendeten Schriftarten (Fonts), das so mit Hilfe der Gambas-Komponente gb.poppler nicht möglich ist:

hans@pc-a-mint20:~/Dokumente$ pdffonts k23.12.pdf
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
BAAAAA+LiberationSans                TrueType          WinAnsi          yes yes yes     48  0
CAAAAA+DejaVuSansMono                TrueType          WinAnsi          yes yes yes     33  0
DAAAAA+LiberationSans-Italic         TrueType          WinAnsi          yes yes yes     43  0
EAAAAA+LiberationSans-Bold           TrueType          WinAnsi          yes yes yes     38  0

Download