Autor |
Beitrag |
JensLaskowski
      
Beiträge: 168
Win XP
BDS 2006 Architect
|
Verfasst: 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 Christian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Fr 04.05.2007 um 18:59
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: 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?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
JensLaskowski 
      
Beiträge: 168
Win XP
BDS 2006 Architect
|
Verfasst: 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
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: 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)?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: 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 
      
Beiträge: 168
Win XP
BDS 2006 Architect
|
Verfasst: 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
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: 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 
      
Beiträge: 168
Win XP
BDS 2006 Architect
|
Verfasst: 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
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: 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
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: 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 
      
Beiträge: 168
Win XP
BDS 2006 Architect
|
Verfasst: 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
|
|
|