Autor Beitrag
JensLaskowski
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 168

Win XP
BDS 2006 Architect
BeitragVerfasst: Fr 04.05.07 18:52 
Hallo,

ich bin mir nicht sicher ob dieses Thema hier reinpasst. Wenn nicht bitte verschieben.

Ich muss in einem schon vorhandenem Programm noch etwas einfügen. Und zwar soll der Benutzer des Programmes eine PDF einlesen können, die dann auch angezeigt wird und gelesen werden kann.

Ich habe mir das so vorgestellt, dass der Pfad zu dieser PDF in einer DB gespeichert wird und dier benutzer bei jedem Systemstart die möglichkeit hat die PDF wieder zu leses, ohne sie wieder neu einzulesen. Quasi so eine Art PDF Datenbank.

Nun weiß ich leider nicht, wie sich das realisieren lässt. Hab bei meinen ActiveX Komponenten geschaut. Da ist auch eine PDf Komponente, aber leider ist diese ohne Hilfe.

Meine Frage wäre jetzt, wie ich mit dieser Komponente umgehen muss, oder ob ich nicht vielleicht eine andere nehmen kann.

Hoffe mir kann jemand helfen

Mit freundlichen Grüßen
JensLaskowski


Moderiert von user profile iconChristian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Fr 04.05.2007 um 18:59
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 04.05.07 19:02 
Moin!

Reicht es nicht, einfach ein ShellExecute auf das PDF zu machen und den Rest dem System/Benutzer zu überlassen? :nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
JensLaskowski Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 168

Win XP
BDS 2006 Architect
BeitragVerfasst: Fr 04.05.07 19:13 
ja daran hatte ich auch gedacht, aber dann öffnet sich immer der Acrobat Reader. Ich würde es halt schöner finden, wenn sich die PDF im Programm öffnen würde.

Das Programm soll am Ende etwa die gleiche Funktionsweise haben wie dieses www.ograhl.com/de/snippetcenter/

Mit freundlichen Grüßen
JensLaskokswi
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 04.05.07 19:16 
Moin!

TWebBrowser und damit indirekt das Adobe-ActiveX-Plugin verwenden (IMHO ist es auch genau das, was Adobe empfiehlt)? :nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 04.05.07 19:18 
Wie meinst Du "(ein)lesen" in deinem Beitrag?

Willst Du den Text aus der PDF haben? Oder einfach nur die PDF anzeigen?

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
JensLaskowski Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 168

Win XP
BDS 2006 Architect
BeitragVerfasst: Fr 04.05.07 19:24 
Also ich hätte mir das so vorstellen könne:

Links habe ich eine TreeView wo alle PDFs aufgelistet werden, die ein Benutzer hinzugefügt hat. Wenn der Nutzer auf einen eintrag drückt, öffnet sich rechts im fenster in einem extra bereich.

Ich hatte das so überlegt, dass wenn der benutzer eine PDF hinzzufügt, die PDF in einem Verzeichniss vom Programm speichert, damit man die einzelne PDF löschen kann und sie nur noch mit dem Programm aufrufen kann.

Mit einlesen meine ich halt den Vorgang, wenn der Benutzer die PDF dem Programm hinzufügt.

Mit freundlichen Grüßen
JensLaskowski
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 04.05.07 19:37 
Du könntest (ACHTUNG: AUFWÄNDIG!!!) mit GhostScript Dir die PDF selber einlesen und dann als Grafik-Dateien die einzelnen Seiten anzeigen. Für diesen Fall könntest Du sogar die PDFs direkt aus der DB auslesen (GhostScript unterstützt die Eingabe des PDFs via Pipe). Allerdings ist diese Variante ohne ein wenig Experimentierfreude nicht zu empfehlen (wie es geht, zeigt GSview, was in Verbindung mit GhostScript empfohlen wird).

Allerdings würd ich auch den Weg über das ActiveX von Adobe vorschlagen (geht auch ohne TWebBrowser, da man ActiveX direkt integrieren kann). Dazu musst Du Dir allerdings über Komponenten --> ActiveX importieren eine entsprechende Schnittstellen-Unit von Delphi erzeugen lassen (was nicht immer stabil funktioniert).

Den Splash-Screen vom Adobe konnte man IIRC abschalten, was ich aber nicht empfeehlen würde, da dieses Setting global gilt und der User sich über eine entsprechende Änderung wundern könnte. Außerdem erklärt es, warum deine App ggf. mal eben 30 Sekunden hängt ;-)

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
JensLaskowski Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 168

Win XP
BDS 2006 Architect
BeitragVerfasst: Fr 04.05.07 19:46 
Also Experimentier freudig bin ich ja. Problem ist bei mir nur.

Ich hab das Active X von Adovbe schon impotiert aber ich habe keinerlei Hilfe dazu. Ich bin eigentlich in der Lage mir etwas selbst beizubringen nur ohne Hilfe ist das schwierig :(

Mit freundlichen Grüßen
JensLaskowski
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 04.05.07 19:54 
Hat Delphi Dir nach dem Import eine Meldung angezeigt, dass Du eine neue Komponente hast?
Wenn nicht (was ich vermute) gehst Du einfach unter Datei --> Neu --> Package (ggf. unter Weitere) und fügst Dort die Datei hinzu, die Delphi geschrieben hat (die *TLB.pas). Danach unter Projekt-Optionen des Packages einen kurzen aussagekräftigen Namen vergeben, das Package speichern und auf installieren klicken. Du solltest dann ne neue Komponente haben.

Die einfach bei Dir auf's Form ziehen. Anhand der Properties sollten die Grundfunktionen recht gut deutlich werden (hab kein Adobe bei mir, da ich GSview nutze). Aber ich denk mal, die wichtigsten Funktionen der Unit sollten direkt anhand ihrer Namen deutlich werden (also z.B. Open, New, ... Oder Properties wie Filename o.ä. Such einfach mal danach.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Fr 04.05.07 20:03 
Lass das mit dem ActiveX, verwende lieber direkt TWebBrowser, damit bist Du auf der sichereren Seite. Ich habe damals beim Update von Acrobat 5 auf 6 das Erlebnis gehabt, dass das von mir importierte ActiveX-Plugin nicht mehr funktionierte. Somit hätte ich eine Fallunterscheidung nach installiertem Acrobat machen müssen.

Mit TWebBrowser übernimmt der IE diese Aufgabe und Du kannst fast sicher sein, dass das Dokument angezeigt wird, sobald Acrobat korrekt installiert wurde und die Datei auch kompatibel ist.
JensLaskowski Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 168

Win XP
BDS 2006 Architect
BeitragVerfasst: Sa 05.05.07 19:24 
Also folgender Stand:

Ich habe heute nacht etwas herum experimentiert und habe mich umstimmen lassen. Ich glaube ich nehme jetzt den TWebBrowser und rufe die PDF einfach mit der Probertie Navigate auf.

Finde diese Lösung gar nicht schlecht. trotzdem werde ich mich nochmal an das ActiveX setzten, denn was man weiß, weiß man halt.

Danke an alle, die mir helfen wollten.

Mit freundlichen Grüßen
JensLaskowski