Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Webbroser Componente zum PDF-Anzeigen (https://www.delphipraxis.net/49457-webbroser-componente-zum-pdf-anzeigen.html)

Smiley 11. Jul 2005 19:07


Webbroser Componente zum PDF-Anzeigen
 
Ich benutze die Webbrowser-Komponente zum anzeigen von .pdf Dokumenten, das funktioniert soweit ganz gut.
Leider ist das Problem, dass dabei ja immer der aktuelle AcrobatReader aufgerufen wird und ich dieses Programm nicht wieder schließen kann.
Es kommt immer wieder mal vor, dass sich der AcrobatReader nicht wieder schließt und damit die zuletzt benutzte .pdf datei nicht wieder freigibt.
Ich muss die angezeigte Datei in ein anderes Verzeichnis kopieren und umbenennen und dann im alten Verzeichnis wieder löschen.
Das löschen funktioniert aber nicht, wenn die Datei noch in Benutzung ist.
Zur Zeit behelfe ich mich damit, dass ich den AcrobatReader aus dem TaskManager lösche (KillProcId) und dann die Datei lösche. Das funktioniert aber auch nicht immer, da es ja etwas dauert bis die Datei freigegeben ist. Ich habe schon einen sleep nach dem KillProcId eingebaut, das hilft aber auch nicht immer.
Kann sein, dass ich mir viel zu viel Arbeit mache, aber ich kann es nicht anders.
Es gibt doch bestimmt eine einfachere Lösung.
Den Acrobat über ActiceX oder Dll ansprechen fällt weg, da ich icht weiß, welche Acrobatversion auf dem jeweiligen Computer installiert ist und die verschiedenen Acrobatversionen sich nich gleich ansprechen lassen.

marabu 11. Jul 2005 19:23

Re: Webbroser Componente zum PDF-Anzeigen
 
Hallo Smiley,

die Verschachtelung von WebBrowser und Acrobat Reader ist nicht wirklich nötig:

Delphi-Quellcode:
ShellExecute(Handle, 'open', 'c:\media\ebooks\assemblerbuch.pdf', '', '', SW_SHOWNORMAL);
Warum du das Fenster auch wieder schließen willst habe ich nicht verstanden.

marabu

Smiley 11. Jul 2005 20:19

Re: Webbroser Componente zum PDF-Anzeigen
 
Das mit shellexecute habe ich auch gemacht, aber ich benötige die anzeige meist in einem festen Fesnster in meinem Formular.
Daher die Webbrowserlösung.
Mein Problem ist, dass ich die PDF-Datei die mit dem AcrobatReader gerade geöffnet ist, nicht löschen kann.

MathiasSimmack 11. Jul 2005 20:21

Re: Webbroser Componente zum PDF-Anzeigen
 
Gibt´s nicht ´ne direkte Komponente (Typbibliothek), die man nutzen kann, sobald der Reader installiert ist? :gruebel: Dürfte doch besser sein als der Weg über den IE.

Aenogym 11. Jul 2005 20:36

Re: Webbroser Componente zum PDF-Anzeigen
 
Zitat:

Zitat von MathiasSimmack
Gibt´s nicht ´ne direkte Komponente (Typbibliothek), die man nutzen kann, sobald der Reader installiert ist? :gruebel: Dürfte doch besser sein als der Weg über den IE.

genau,

delphi > komponente > ActiveX Control importieren
im folgenden dialog das Control "Adobe Acrobat x.0 Browser Control Library" installieren.

aenogym
übrigens: netter avatar, smiley :mrgreen:

Smiley 11. Jul 2005 20:42

Re: Webbroser Componente zum PDF-Anzeigen
 
Das mit dem activX habe ich oben schon erwähnt, ist aber sehr aufwendig, wenn man es für mindestens 3 verschiedene Acrobat Reader Versionen schreiben muss und nicht weiß welche auf dem system gerade läuft.
Dazu kommt noch, dass es ab Acrobat7 kein activeX mehr gibt, sondern nur ein .dll
Wenn einer die verschiedenen Varianten für wenigstens 3 Versionen in den Griff bekommt, dann wäre das eine Lösung.

Bernhard Geyer 12. Jul 2005 07:21

Re: Webbroser Componente zum PDF-Anzeigen
 
Zitat:

Zitat von MathiasSimmack
Gibt´s nicht ´ne direkte Komponente (Typbibliothek), die man nutzen kann, sobald der Reader installiert ist? :gruebel: Dürfte doch besser sein als der Weg über den IE.

Theoretisch ja. Aber Adobe garantiert die Lauffähigkeit nur im IE. Alles andere ist Zufall. Deswegen hat Adobe auch die Schnittstelle im Reader 7 komplett geändert, so das alle bisherigen auf diesen Weg laufenden Programme nicht mehr funktionieren.

@Smiley:
Was heißt beenden? Hängt sich der Reader im IE auf? Hast du evtl. die .0er-Versionen installiert. Vor allem die 6.0er-Version ohne Updates ist absoluter Mist. Einfach die passenden Updates installieren und ein Vielzahl der Probleme sind gelößt.

Smiley 12. Jul 2005 19:14

Re: Webbroser Componente zum PDF-Anzeigen
 
Mein Windows und IE ist immer auf dem neuesten Stand, daran kann es nicht liegen.

Des öfteren bleibt nach dem Verlassen meines Programmes immer noch ein Acroread32 im Taskmanager stehen, obwohl auf dem Bildschirm nichts vom AcrobatReader zu sehen ist (Auch nicht in der Takleiste).
Wenn mein Programm dann wieder aufgerufen wird und etwas anzeigen will, hängt das Programm fest.
Im Delphi2005 habe ich im Startbildschirm, wenn ich eine .pdf Datei anklicke, links daneben eine Vorschau gesehen, da wird doch auch kein AcrobatReader aufgerufen, das geht ganz schnell, wie machen die das.

Bernhard Geyer 13. Jul 2005 07:48

Re: Webbroser Componente zum PDF-Anzeigen
 
Zitat:

Zitat von Smiley
Des öfteren bleibt nach dem Verlassen meines Programmes immer noch ein Acroread32 im Taskmanager stehen, obwohl auf dem Bildschirm nichts vom AcrobatReader zu sehen ist (Auch nicht in der Takleiste).
Wenn mein Programm dann wieder aufgerufen wird und etwas anzeigen will, hängt das Programm fest.

Ist normal. Ist Acrobat. Evtl. einfach mal komplett deinstallieren und neu installieren.

Zitat:

Zitat von Smiley
Im Delphi2005 habe ich im Startbildschirm, wenn ich eine .pdf Datei anklicke, links daneben eine Vorschau gesehen, da wird doch auch kein AcrobatReader aufgerufen, das geht ganz schnell, wie machen die das.

Hast du evtl. die Adobe-Vollversion installiert?

marabu 13. Jul 2005 07:49

Re: Webbroser Componente zum PDF-Anzeigen
 
Hallo Smiley,

keine Ahnung, wie Borland das in Delphi 2005 macht, aber du könntest dir für 250 Euronen eventuell eine Menge Ärger sparen...

Schau mal hier: WPViewPDF

Smiley 14. Jul 2005 13:43

Re: Webbroser Componente zum PDF-Anzeigen
 
@Geyer nein ich verwende den normalen Reader, der ist schon schlimm genug. Mit dem Writer dauert es ja ewig bis da was kommt und der läd seine features auchnoch jedesmal neu.

@marabu ja, genau von WPCubed hatte ich schon das WPTools getestet und mich gewundert, warum da nichts mit PDF-anzeigen geht.
jetzt da ich mir die Seite mal angesehen habe, sehe ich, dass ich einfach das falsche Tool in den Händen hatte.
Das WPViewPDF scheint genau das richtige zu sein (es gibt auch noch das Programm PDFView, das scheint aber den Acrobat zu benutzen).
Das Problem ist nur, dass ich mein Programm erst mal ausreichend oft verkaufen muss, um mir den WPViewPDF leisten zu können.

Danke fürs suchen marabu (ich hätte mal anständig die Augen aufmachen sollen als ich bei WPCubed war)

Bernhard Geyer 14. Jul 2005 13:54

Re: Webbroser Componente zum PDF-Anzeigen
 
Folgende Fallstricke gibt es noch zu beachten:

- Wenn ein alter Reader/Vollversion installiert ist so muß diese Deinstalliert werden. Wird nur die neue Version installiert ist meißt die Readerinstallation kaputt (mit diversen Auswirkungen)
- Die Acrobat-Version 6.00 ist vollkommener Müll. Da sind noch einige Riesenbugs drin. Also auf jedenfall Updaten

Smiley 15. Jul 2005 07:40

Re: Webbroser Componente zum PDF-Anzeigen
 
Den Acrobat Reader 6.00 habe ich gerade drauf.
Die 7er Version läuft bei mir mit einigen alten Ptogrammen nicht.
Gibt es eine andere 6er Version oder besser auf die 5er gehen ?

Bernhard Geyer 15. Jul 2005 08:55

Re: Webbroser Componente zum PDF-Anzeigen
 
Zitat:

Zitat von Smiley
Den Acrobat Reader 6.00 habe ich gerade drauf.

Dann hast du die Bug-Version. Einfach Updaten über Adobe-Update-Seite
Zitat:

Zitat von Smiley
Die 7er Version läuft bei mir mit einigen alten Ptogrammen nicht.

Wird vermutlich das geänderte Interface sein.
Zitat:

Zitat von Smiley
Gibt es eine andere 6er Version oder besser auf die 5er gehen ?

Also ich hab noch die 5er-Version mit den üblichen Adobe-Problemen laufen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:41 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