PDF-Datei als Progamm-Hilfe

Hallo.
In meinem Programm habe ich einen Hilfe-Menüpunkt eingebaut, der lediglich ein Fenster mit HTML-Viewer aufruft. In dem Fenster zeige ich dann diverse HTML-Dateien, die im Prinzip die Kapitel des Handbuches anzeigen (incl. Verweise).
Da das Handbuch als PDF-Datei mit genau denselben Verweismöglichkeiten vorliegt, würde ich mir gern die Arbeit sparen, aus den einzelnen Kapiteln HTML-Dateien zu erzeugen und lieber gleich die PDF-Datei anzeigen.
Sicher wäre es möglich, die Datei einfach zu öffnen und mit einem externen Viewer anzeigen zu lassen. Ich würde hier aber gern ein eigenes Fenster mit einem PDF-Viewer anzeigen. Insbesondere würde ich ggf. auch gleich zu bestimmten Stellen innerhalb des PDF-Dokumentes springen um kontextbezogen auf die gerade verwendete Funktion reagieren zu können.

Gibt es da schon etwas oder ist es wirklich sinnvoller einfach das Handbuch extern zu öffnen?

Das ganze sollte zumindest auf macOS, Windows und Linux funktionieren.

Das Navigieren ist mit html wesentlich einfacher als mit pdf. In macOS kannst Du wahrscheinlich noch Bordmittel verwenden. Aber unter LInux und Windows benötigst Du dafür bestimmt DynaPDF.

Wie ist denn Deine Workflow mit html und pdf? Ich habe eine Webseite für das Manual in html natürlich. Über das MBS-Plugin mache ich da zweimal im Jahr ein pdf draus.

Du könntest ja auch ein Kontext basiertes PDF aus Xojo heraus erzeugen.

So habe ich es eingebaut was das Anzeigeprogramm nutzt was installiert ist. (Windows Umgebung)
Ich finde das ist nicht der richtige Weg wenn jedes Programm seinen eigenen Browser oder Reader mit installiert.
PDF habe ich genutzt weil es besser druckbar ist bzw. ein Seitenformat hat.
HTML zu generieren und einen installierten Browser zu öffnen fände ich auch nicht verwerflich.

Var f As FolderItem = SpecialFolder.Resources.Child("Manual.pdf")

If f.Exists Then 
  f.Open
Else
  MessageBox "error: manual file not found"
End If

Mein Problem ist, dass ich das Handbuch tatsächlich als Text in einer Textverarbeitung geschrieben habe. Daraus nachträglich eine HTML-Fassung zu erstellen ist mühsam.
Vermutlich wäre es der sinnvollste Ansatz, das Handbuch tatsächlich komplett auf HTML- um zu stellen.

Hmmm… klingt nicht spaßig. :frowning:

1 Like

Wenn man keinen eigenen PDF-Betrachter erstellen möchte, dann kann man das PDF auch ans System zur Anzeige weiterreichen.

Var doc As FolderItem = SpecialFolder.Resources.Child("Manual.pdf")
System.GotoURL(doc.URLPath)

Wenn man die anzuzeigende Seitennummer kennt, kann man die auch mit angeben - dann hängt es aber vom Anzeigeprogramm ab, ob das damit umgehen kann (Browser können das eigentich immer, Vorschau anscheinend nicht (oder mit einem anderen, mir unbekanntem, Parameter:

Var doc As FolderItem = SpecialFolder.Resources.Child("Manual.pdf")
System.GotoURL(doc.URLPath + "#page=3")
1 Like