PBToolboxAI v1 ← Site

pdfviewer — u_pbt_pdfviewer #

← Komponentenreferenz · Inhalt des Handbuchs

Integrierter PDF-Betrachter: zeigt ein lokales oder im Web veröffentlichtes Dokument direkt in Ihrem Fenster an, mit Seitennavigation, Zoom und Druckfunktion.

Live ansehen — Demoanwendung, Kachel PDF viewer: die Vorschau, der zugehörige Code und diese Seite, nebeneinander.


Auf einen Blick #

Userobjectu_pbt_pdfviewer
Item-Klasse— (Komponente ohne Items)
WofürEine Rechnung, eine Bestellung, einen Vertrag oder eine Anleitung anzeigen, ohne eine externe Anwendung zu starten
Opt-in-Optionen

Die Komponente ersetzt das klassische „PDF in eine temporäre Datei speichern und dann ShellExecute aufrufen“: Das Dokument bleibt in Ihrer Anwendung, und der Benutzer verlässt nie den aktuellen Bildschirm.


Schnellstart #

// open-Event des Fensters : ein auf der Festplatte vorhandenes Dokument anzeigen
uo_pdf.is_source = "C:\factures\FA-2026-0142.pdf"
// ue_load_completed-Event von uo_pdf : (string as_source)
uo_statut.of_item("main").is_text = "Dokument angezeigt"

Das ist alles: is_source zu setzen genügt, um das Dokument zu laden und anzuzeigen.


Eigenschaften #

EigenschaftTypStandardZweck
is_sourcestring""Anzuzeigendes Dokument: ein Dateipfad auf der Festplatte (absolut oder relativ zur Anwendung) oder eine Webadresse (https://…). Das Setzen des Werts löst das Laden aus; "" zu setzen leert den Betrachter
ii_pageinteger0Angezeigte Seite, ab 1 gezählt (0 = die erste Seite des Dokuments). Das Laden eines anderen Dokuments setzt sie zurück: die Seite des vorherigen zu behalten ließe den Leser mitten in einer gerade geöffneten Datei landen. Nur schreibend: Beim Auslesen erhalten Sie die zuletzt angeforderte Seite, nicht die angezeigte. Der Betrachter ist der der Web-Engine, und er meldet nichts zurück.
ii_zoominteger0Zoom in Prozent (0 = dem Betrachter überlassen). Ein gesetzter Zoom hebt is_fit auf, das ihm widerspricht. Nur schreibend, wie ii_page: Zoomt der Benutzer über die Leiste des Betrachters, folgt diese Eigenschaft nicht.
is_fitstring""Anpassung: FIT_PAGE, FIT_WIDTH, FIT_HEIGHT, oder "" für keine. Hebt ii_zoom auf
ib_viewer_toolbarbooleantrueZeigt die eigene Leiste des Betrachters (Seitenzahl, Zoom, Drucken, Herunterladen). Blenden Sie sie aus, wenn Ihr Fenster diese Befehle selbst trägt
is_theme_stylestringfluentVisueller Stil der Komponente (Konstanten THEME_STYLE_*)
is_theme_modestringlightHelle oder dunkle Variante (Konstanten THEME_MODE_*)
il_theme_accentlong-1Akzentfarbe dieser Komponente (-1 = Akzent des Designs)

Methoden #

MethodeZweck
of_refresh ( )Lädt das aktuelle Dokument neu — zum Beispiel nachdem die Datei auf der Festplatte neu erzeugt wurde
of_reset ( )Leert den Betrachter und setzt alle Eigenschaften auf ihren Standard zurück
of_set_redraw (boolean)Fasst eine Folge von Änderungen zu einer einzigen Darstellung zusammen
of_save_as_png (string) · of_save_as_jpg (string)Exportiert die Darstellung als Bild

Events #

EventAusgelöst wenn
ue_load_completed (string as_source)Das Dokument wurde fertig geladen; as_source gibt an, was angezeigt wurde
ue_ready ( )Die Komponente ist fertig geladen; alles zuvor Gesendete wurde nachgespielt
ue_runtime_missing ( )Die WebView2-Runtime fehlt: die Komponente bleibt leer
ue_bg_color (long al_color)Die Komponente hat ihre Design-Hintergrundfarbe berechnet; das Userobject hat sie bereits übernommen (backcolor)

Was der Benutzer ohne eine einzige Zeile Code tun kann #

Der Betrachter zeigt seine integrierte Symbolleiste über dem Dokument an. Sie müssen nichts programmieren: Sie wird vom System bereitgestellt und lokalisiert.

AktionWie
SeitennavigationMausrad und Bildlaufleiste, oder direkte Eingabe der Seitenzahl im Zähler n / gesamt
ZoomSchaltflächen + / , Strg + Mausrad, an Seite oder an Breite anpassen
SucheStrg+F im Text des Dokuments
DruckenDruckersymbol in der Symbolleiste, oder Strg+P
SpeichernSchaltfläche zum Herunterladen, um eine Kopie des Dokuments zu sichern
DrehungDrehen der Seiten über das Menü der Symbolleiste

Beispiele #

Ein lokales Dokument öffnen #

// Absoluter Pfad, oder relativ zum Verzeichnis der Anwendung
uo_pdf.is_source = "doc\conditions-generales.pdf"

Ein im Web veröffentlichtes Dokument öffnen #

// Eine Webadresse wird genau wie eine lokale Datei geladen
uo_pdf.is_source = "https://www.monsite.fr/tarifs/catalogue-2026.pdf"

Eine Internetverbindung ist selbstverständlich erforderlich; das Laden erfolgt asynchron, ue_load_completed meldet Ihnen das Ende.

Das PDF anzeigen, das eine DataWindow gerade erzeugt hat #

string ls_fichier

ls_fichier = "C:\temp\etat_" + String(Today(), "yyyymmdd") + ".pdf"

// Die DataWindow erzeugt die Datei...
dw_etat.SaveAs(ls_fichier, PDF!, false)

// ...und der Betrachter zeigt sie sofort an
uo_pdf.is_source = ls_fichier

Nach der Neuerzeugung der Datei aktualisieren #

// Die Datei wurde am selben Ort neu geschrieben : neu laden, ohne is_source anzufassen
uo_pdf.of_refresh()

Mehrere Dokumente nacheinander im selben Betrachter anzeigen #

// ue_row_changed-Event von dw_liste : den Anhang der aktuellen Zeile anzeigen
string ls_pdf

ls_pdf = dw_liste.GetItemString(dw_liste.GetRow(), "chemin_pdf")

if ls_pdf = "" then
    uo_pdf.of_reset()          // kein Anhang : leerer Betrachter
else
    uo_pdf.is_source = ls_pdf
end if

Das Ende des Ladevorgangs verfolgen #

// ue_load_completed-Event von uo_pdf : (string as_source)
uo_attente.Hide()
uo_imprimer.ib_enabled = true

Vorschau in einer Registerkarte, neben der Eingabe #

// open-Event : der Betrachter belegt eine Registerkartenseite, die Eingabe die andere
uo_tab.of_add_page("saisie",  "Eingabe",   uo_page_saisie)
uo_tab.of_add_page("apercu",  "Vorschau",   uo_page_apercu)

// Der Betrachter wird wie jedes andere Steuerelement in uo_page_apercu abgelegt
uo_pdf.is_source = is_document_courant

Die Komponente lässt sich ohne besondere Vorkehrungen in einer tab oder in einem dockcontainer-Panel hosten.

Die Datei vor der Anzeige prüfen #

string ls_chemin

ls_chemin = "C:\factures\" + is_numero + ".pdf"

if not FileExists(ls_chemin) then
    // Nichts zu zeigen : den Betrachter leeren, statt das vorherige Dokument stehen zu lassen
    uo_pdf.of_reset()
    uo_statut.of_item("main").is_text = "Rechnung nicht gefunden"
    return
end if

uo_pdf.is_source = ls_chemin

Akzeptierte Formate und Pfade #

Form von is_sourceBeispielHinweis
Absoluter Pfad"C:\docs\contrat.pdf"Am zuverlässigsten
Relativer Pfad"doc\notice.pdf"Relativ zum Verzeichnis der Anwendung
Netzwerkpfad"\\serveur\partage\bon.pdf"Der Benutzer muss Leserechte besitzen
Webadresse"https://…/catalogue.pdf"Asynchrones Laden, Verbindung erforderlich
Leer""Leert den Betrachter

Diese Komponente unterstützt ausschließlich PDF: für ein Bild verwenden Sie picture; für eine HTML-Seite webbrowser.


Best Practices #


← Komponentenreferenz · Inhalt des Handbuchs