Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Kapitel/Link in pdf- oder html-Dokument aufrufen (https://www.delphipraxis.net/97863-kapitel-link-pdf-oder-html-dokument-aufrufen.html)

messie 17. Aug 2007 13:20


Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Moin,

ich suche nach einer Möglichkeit, einen Kontext in einem Handbuch (pdf/htm) aus dem Programm aufzurufen. Am schönsten wäre natürlich ein Kommandozeilenaufruf an den jeweiligen Browser/Reader, der dann die korrekte Stelle anzeigt. Aber da habe ich noch gar keine Erfahrungen und auch nichts entsprechendes gefunden.
Hat jemand dort Erfahrungen / Ideen / Stichworte?

Danke, Messie

mkinzler 17. Aug 2007 13:22

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
In HTMl ist das kein Problem, wenn du Textmarken im Code setzt.

messie 17. Aug 2007 13:38

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Hast Du einen Link oder ein Beispiel? Ist nicht so ganz meine Welt...

Grüße, Messie

Der_Unwissende 17. Aug 2007 13:50

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Hi,
in HTML ist das ganz einfach (wiederhole irgendwie das, was mkinzler schon sagte), Textmarke setzen:

XML-Code:
<a name="NAME_DER_TEXTMARKE">Hierhin wird gesprungen</a>
und dann auf die Textmarke verweisen:
XML-Code:
[url="Seitenname#NAME_DER_TEXTMARKE"]Hierhin wird gesprungen[/url]
Du kannst auch einen Browser starten, dem Du eben die URL der HTML-Seite übergibst und ein "#NAME_DER_TEXTMARKE" anhängst. Der Browser sucht dann auf der gleichen Seite nach der entsprechenden Textmarke und springt dorthin.

Gruß Der Unwissende

messie 17. Aug 2007 14:08

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Zitat:

Zitat von Der_Unwissende
Du kannst auch einen Browser starten, dem Du eben die URL der HTML-Seite übergibst und ein "#NAME_DER_TEXTMARKE" anhängst. Der Browser sucht dann auf der gleichen Seite nach der entsprechenden Textmarke und springt dorthin.

Gruß Der Unwissende

Ja, so etwas hatte ich vor. Es klappt aber leider nicht, jedenfalls wenn ich es an der Kommandozeile mit Deinem Beispiel ausprobiere.

Grüße, Messie

Der_Unwissende 17. Aug 2007 14:14

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Zitat:

Zitat von messie
Ja, so etwas hatte ich vor. Es klappt aber leider nicht, jedenfalls wenn ich es an der Kommandozeile mit Deinem Beispiel ausprobiere.

Nur bevor ich frage, wer in der DP gerade einen Teesatz hat in dem ich lesen darf, könntest Du eventuell zeigen was Du wie versuchst? :wink:

messie 17. Aug 2007 14:22

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Ich habe eine htm-Datei test.htm erstellt mit den beschriebenen Textmarken. Der Sprung innerhalb des Dokuments klappt.
Der Aufruf an der Kommandozeile ...\test.htm #NAME_DER_TEXTMARKE (ob mit oder ohne Anführungszeichen) öffnet zwar das Dokument, aber der Sprung zur angegebenen Marke bleibt aus.

Eigentlich sollte das auch unabhängig vom Browser bzw. den Einstellungen sein.

Grüße, Messie

Der_Unwissende 17. Aug 2007 14:25

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Lass mal das Leerzeichen weg:

...\test.htm#NAME_DER_TEXTMARKE (statt ...\test.htm# NAME_DER_TEXTMARKE). Am Besten kopierst Du sonst einfach mal die URL, die der Webbrowser anzeigt, wenn Du auf die Textmarke im Dokument gesprungen bist und rufst die Adresse auf der Kommandozeile auf, sollte dann auch klappen.

messie 17. Aug 2007 15:14

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Bei mir funzt der Sprung beim Aufruf definitiv nicht. Habe es auch nochmal per Shellexecute versucht.

An der html-Datei kann man ja wohl nicht viel falsch machen
Zitat:


BlaBla</p>


BlaBla</p>


BlaBla</p>


BlaBla</p>
...


BlaBla</p>


BlaBla</p>

Hierhin wird gesprungen



BlaBla</p>


BlaBla</p>
...


BlaBla</p>


BlaBla</p>


BlaBla</p>

<a name="NAME_DER_TEXTMARKE">Hierhin wird gesprungen</a>




BlaBla</p>


BlaBla</p>

Ich bekomme immer den Seitenanfang gezeigt.

Grüße, Messie

Der_Unwissende 17. Aug 2007 15:25

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Ok, hatte es nur mit Opera getestet und natürlich funktioniert das dort ohne Probleme. Beim IE habe ich gerade auch gemerkt, dass der da offensichtlich den Teil ignoriert. Hm, vielleicht gibt es eine Möglichkeit das Zeichen zu escapen, aber ob das dann noch unäbhängig vom Browser wäre...

Sorry, da kann ich Dir dann auch nicht weiter helfen (außer natürlich mit dem Hinweis, dass Opera ohnehin der tollste Browser ist! :wink:)

messie 17. Aug 2007 15:31

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Zitat:

Zitat von Der_Unwissende
mit dem Hinweis, dass Opera ohnehin der tollste Browser ist! :wink:)

Nee, ich brauche schon etwas, was überall funzt, egal ob Opera oder Bill ihm Seiner...

Grüße, Messie

marabu 17. Aug 2007 16:01

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Hallo,

FireFox akzeptiert einen File-Url mit Anchor auch ohne Protokollvorsatz. Internet Explorer verwendet bei fehlendem Protokollvorsatz immer HTTP und hat zudem Probleme mit Prozent-kodierten URLs - nur bei HTTP-URLs wird ein Anchor verarbeitet. Das Acrobat Reader Browser Plugin soll die Anchor-Syntax verstehen, ich habe es aber noch nicht ausprobiert.

Grüße vom marabu

mschaefer 17. Aug 2007 16:43

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Moin, moin,

Möglicherweise kann es helfen den Acrobat Reader mit den entsprechenden Startparemtern aufzurufen Acrobat Parameter.

Grüße // Martin

messie 20. Aug 2007 07:49

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Zitat:

Zitat von marabu
Hallo,

FireFox akzeptiert einen File-Url mit Anchor auch ohne Protokollvorsatz. Internet Explorer verwendet bei fehlendem Protokollvorsatz immer HTTP und hat zudem Probleme mit Prozent-kodierten URLs - nur bei HTTP-URLs wird ein Anchor verarbeitet.
Grüße vom marabu

Moin,

hat jemand ein funktionierendes Beispiel? Ich bin bisher nicht weitergekommen... vielleicht habe ich mal wieder ein neues Sicherheitsfeature gefunden.

Grüße, Messie

messie 21. Aug 2007 08:58

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Moin,

muß nochmal pushen, bin nicht weitergekommen. Habe nochmal ein sauberes Gerüst in die Datei eingebaut, der Sprung beim Aufruf wird aber bisher ignoriert. Wäre klasse, wenn da jemand Erfahrung mit hätte....

Grüße, Messie

Der_Unwissende 21. Aug 2007 09:42

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Zitat:

Zitat von messie
Habe nochmal ein sauberes Gerüst in die Datei eingebaut, der Sprung beim Aufruf wird aber bisher ignoriert

Hi,
wie rufst Du im Moment auf? Bei wem klappt's, bei wem nicht?

Aber nachdem der marabu ja sagte
Zitat:

Zitat von marabu
Internet Explorer verwendet bei fehlendem Protokollvorsatz immer HTTP und hat zudem Probleme mit Prozent-kodierten URLs - nur bei HTTP-URLs wird ein Anchor verarbeitet

müsstest Du ohne die Webseite per HTTP zugänglich machen, damit der Zugriff mit jedem Browser problemfrei klappt. Dazu wirst Du dann einfach einen lokalen Webserver benötigen, gibt bestimmt einfache, kleine, freie, die nichts an sonderlich großer Erweiterbarkeit, Skalierbarkeit usw. mitbringen, aber eben völlig ausreichen um einfache Webseiten auszuliefern. Starte einen solchen aus Deinem Programm heraus (gibt auch nutzbare Komponenten) auf einem der privaten Ports und ruf öffne dann die entsprechende HTTP-Url (http://127.0.0.1/<wasAuchimmer.htm#Anker>:<Port>).

messie 21. Aug 2007 10:18

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Ich glaube, ich fange langsam an zu verstehen. Ich habe bisher nur den Dateinamen aufgerufen und nicht explizit einen Browser mit url-Übergabe. Ich will (wollte) ja erreichen, daß der voreingestellte Browser mit dem Sprung aufgerufen wird, was scheinbar nicht klappt. Ich schreibe dem User aber keinen Browser vor, jeder soll mit dem arbeiten was ihm passt.

Wenn ich firefox.exe file:///c:/..../test.htm#MARKE aufrufe, klappt es, allerdings nur mit der prozentcodierten URL. IE macht das nicht.

Wo steht denn in der registry, welches der voreingestellte Browser ist?

Grüße, Messie

Der_Unwissende 21. Aug 2007 11:14

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Zitat:

Zitat von messie
Ich glaube, ich fange langsam an zu verstehen. Ich habe bisher nur den Dateinamen aufgerufen und nicht explizit einen Browser mit url-Übergabe.

Dann verstehst Du das noch falsch :wink:
Öffne einfach die URL, verwende Shellexecute (oder wie die funktion heißt) und übergib einfach eine http://... URL, Windows kümmert sich dann selbst darum, dass der Standard-Handler die verarbeitet!

messie 21. Aug 2007 11:22

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Zitat:

Zitat von Der_Unwissende
Windows kümmert sich dann selbst darum, dass der Standard-Handler die verarbeitet!

Eben nicht, es wird nur das Dokument geöffnet, die übergebene Sprungmarke wird dabei aber ignoriert.

Grüße, Messie

Der_Unwissende 21. Aug 2007 11:43

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Zitat:

Zitat von messie
Eben nicht, es wird nur das Dokument geöffnet, die übergebene Sprungmarke wird dabei aber ignoriert.

Also bei mir klappt das mit dem FF und Opera Problemfrei (beim IE weiß ich jetzt nicht, wie ich den zum Standardhandler für Http mache). Du hast sicher auch das korrekte Protokoll verwendet? Wie gesagt, Du musst entsprechend einen Webserver anbieten. Teste es einfach mal mit einem, der schon läuft. Was passiert denn wenn Du etwas wie

Delphi-Quellcode:
ShellExecute(Application.Handle, PChar('open'), 'http://www.delphipraxis.net/post765583.html#765583', nil, nil, SW_SHOWDEFAULT);
aufrufst?

messie 21. Aug 2007 12:20

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Zitat:

Zitat von Der_Unwissende
Was passiert denn wenn Du etwas wie

Delphi-Quellcode:
ShellExecute(Application.Handle, PChar('open'), 'http://www.delphipraxis.net/post765583.html#765583', nil, nil, SW_SHOWDEFAULT);
aufrufst?

Das funzt einwandfrei, wohl wegen des http-Aufrufs. Wenn ich die Seite speichere und mit
Delphi-Quellcode:
ShellExecute(Application.Handle, PChar('open'), 'file:///C:/Temp/viewtopic.php.htm#765599', nil, nil, SW_SHOWDEFAULT);
aufrufe, wird der anchor ignoriert (abgeschnitten). Das file-Protokoll bzw. läßt den anchor wohl nicht zu.
Bevor ich mir jetzt einen http-Server antu', werde ich wohl besser ein TWebbrowser-Fenster ins Programm einbauen. Denn das kann mit dem anchor umgehen, habe ich schon probiert. Vielleicht probier' ich es auch nochmal mit dem pdf-Aufruf.

Grüße, Messie

Der_Unwissende 21. Aug 2007 12:27

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Zitat:

Zitat von messie
wohl wegen des http-Aufrufs. ... Das file-Protokoll bzw. läßt den anchor wohl nicht zu.

Nun ja, lies nochmal:

Zitat:

Zitat von marabu
Internet Explorer verwendet bei fehlendem Protokollvorsatz immer HTTP und hat zudem Probleme mit Prozent-kodierten URLs - nur bei HTTP-URLs wird ein Anchor verarbeitet.


messie 21. Aug 2007 12:52

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Zitat:

Zitat von Der_Unwissende
Nun ja, lies nochmal:

Zitat:

Zitat von marabu
Internet Explorer verwendet bei fehlendem Protokollvorsatz immer HTTP und hat zudem Probleme mit Prozent-kodierten URLs - nur bei HTTP-URLs wird ein Anchor verarbeitet.


Nun ja, das muß ja nicht für FF gelten, jedenfalls hatte ich das nicht so interpretiert. IE7 schluckt übrigens die prozentkodierten URLs ohne Probleme.

Grüße, Messie

Der_Unwissende 21. Aug 2007 12:58

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Zitat:

Zitat von messie
Nun ja, das muß ja nicht für FF gelten, jedenfalls hatte ich das nicht so interpretiert.

Versteh mich nicht falsch, ich meine für Hilfe ist die DP da und so! Aber HTML-Anchors, zwar für das File-Protokoll berücksichtigt werden, aber nicht für den "normalen" Aufruf über http? :gruebel: Würde selbst für den FF etwas merkwürdig sein, oder? :wink:

messie 21. Aug 2007 14:07

Re: Kapitel/Link in pdf- oder html-Dokument aufrufen
 
Vielleicht habe ich das falsch ausgedrückt. Firefox kann beides, file und http, wenn man es über die Eingabeaufforderung so aufruft:
Zitat:

firefox.exe<Leerzeichen>file:///d:/test.htm#MARKE
IE7 kann da nur http.
Beim Aufruf mit ShellExecute wird der anchor bei file abgeschnitten (Firefox ist Standardbrowser). Das Rumschnippeln am Aufruf scheint also eher eine Eigenschaft von XP als von Firefox zu sein.

Grüße, Messie


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz