AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Pdf im TWebBrwoser anpassen
Thema durchsuchen
Ansicht
Themen-Optionen

Pdf im TWebBrwoser anpassen

Ein Thema von papabaer · begonnen am 24. Okt 2006 · letzter Beitrag vom 30. Okt 2006
Antwort Antwort
papabaer

Registriert seit: 24. Okt 2006
11 Beiträge
 
#1

Pdf im TWebBrwoser anpassen

  Alt 24. Okt 2006, 20:33
Ich habe - nach vergeblichen Versuchen mit dem ocx von Acrobat - mich entschieden die Pdf-Datein im TWebBrowser zu laden. Nun hatte ich mit TAcroPdf die Möglichkeit bistimmte Anpassungen vorzunehmen: Zoom einstellen, Menu unterdrücken usw. Geht das im TWebBrowser auch noch ... sieht sonst nicht so gut aus.
  Mit Zitat antworten Zitat
HalloDu

Registriert seit: 24. Apr 2006
Ort: Oelde
267 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Pdf im TWebBrwoser anpassen

  Alt 24. Okt 2006, 20:38
Ich denke nicht das man da groß was machen kann, weil in TWebBrowser wird ja das Adobe Reader/Acrobat Plugin benutzt auf das du ja keinen Einfluss hast so weit ich weiß, lasse mich aber gern belehren.

Edit: Ich würde dir Empfehlen wieder eine Komponente zu benutzten die auf PDF speziallisiert ist. Dann hast du auch volle Zugriffmöglichkeit (Sofern die Kompo das hat )
Frederic H.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Pdf im TWebBrwoser anpassen

  Alt 24. Okt 2006, 21:17
Die (minimalen) Möglichkeiten des OCX hast Du im TWebBrowser auch. Du mußt "nur" das geladene Document-Interface checken ob es vom Typ der OCX ist und dann entsprechend casten.

Aus dem Gedächtnis:

Delphi-Quellcode:
TMyForm.OnDocumentCompleteMyWebBrowser(...)
var
  MyPDFIntf: IAcroPDF;
begin
  if MyWebBrowsser.ControlInterface.Document.QueryInterface(IID_..., MyPDFIntf) then
  begin
    ...
  end;
end;
Fremdkomponenten haben bei PDF im das Problem das es AFAIK keine gibt dich nicht irgendwelche Elemente in einigen PDF's falsch (gegenüber dem Acrobat Reader) interpretiert.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
papabaer

Registriert seit: 24. Okt 2006
11 Beiträge
 
#4

Re: Pdf im TWebBrwoser anpassen

  Alt 25. Okt 2006, 11:51
Hm, dafür benötige ich aber wieder das ActiveX ...

Aber, wenn ich Pdf's mit dem TWebBrowser anzeigen will, werden diese zumindest angezeigt, auch wenn nur der Acrobat 6 installiert ist. Gibt es eine Möglichkeit, herauszufinden, ob der richtige Reader (d.h. 7) installiert ist, dann kann man in diesem Fall noch nach dem Laden Formatierungen vornehmen.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Pdf im TWebBrwoser anpassen

  Alt 25. Okt 2006, 14:36
Zitat von papabaer:
Hm, dafür benötige ich aber wieder das ActiveX ...
Wie sollte es ohne gehen? (Jedenfalls wenn Du denn Acrobat Reader verwenden willst)

Zitat von papabaer:
Gibt es eine Möglichkeit, herauszufinden, ob der richtige Reader (d.h. 7) installiert ist, ...
Ist doch obiger Pseudocode. Wenn du als IID die ID vom Reader 7 verwendest überprüfst du doch auf diesen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
papabaer

Registriert seit: 24. Okt 2006
11 Beiträge
 
#6

Re: Pdf im TWebBrwoser anpassen

  Alt 25. Okt 2006, 18:08
Da hab ich mich wohl nicht genau genug ausgedrückt: Da muss ich wieder das ActiveX für den Acrobat 7 nehmen, da ich TAcroPdf zurückgreife. Damit habe ich das Problem, dass auf PC's, die noch den Acrobat 6 verwenden das alles nicht funktioniert ...

if MyWebBrowsser.ControlInterface.Document.QueryInterface(IID_..., MyPDFIntf) then Was meinst du mit IID_, bzw. wo finde ich die dazugehörige ID? ... sorry, aber ist für mich Neuland...
  Mit Zitat antworten Zitat
papabaer

Registriert seit: 24. Okt 2006
11 Beiträge
 
#7

Re: Pdf im TWebBrwoser anpassen

  Alt 30. Okt 2006, 19:04
So, ich habe jetzt eine Lösung - in Verbindung mit einem TWebBrowser - gefunden. Beim Erstellen des Programms wird abgetestet, ob der Acrobat Reader 7 installiert ist ...

Delphi-Quellcode:
  try
    PdfFenster:= TAcroPDF.Create(Self);
    PdfFenster.Parent:= PanelPdf;
    PdfFenster.LoadFile('\pdf\Lektion_1_1.pdf');
    PdfOK:= true;
    // Acrobat 7 Reader ist installiert -> einstellen
    with PdfFenster do
      begin
        Height:= 365;
        Left:= 12;
        Top:= 30;
        Width:= 560;
      end;
  except
    PdfOK:= false;
    // Acrobat 7 Reader ist nicht installiert
    PdfFenster.Free;
  end;
... später, wenn eine Pdf-Datei angezeigt werden soll, wird diese dementsprechend geladen.

Delphi-Quellcode:
   if PdfOK then
     begin // Ausgabe mit Acrobat Reader
       PdfFenster.Visible:= true;
       PdfFenster.LoadFile(s);
       PdfFenster.setShowToolbar(false);
       PdfFenster.setZoomScroll(105,50,50);
     end else
     begin // Ausgabe über Webbrowser
       GetDir(0,sdir);
       MainForm.PdfWebBrowser.Visible:= true;
       MainForm.PdfWebBrowser.Navigate(sdir+'\'+s);
     end;
Dies funktioniert ansich ganz gut - ich habe es auf mehreren Rechnern mit unterschiedlichen Acrobat-Versionen getestet. Allerdings wurde auf einem Rechner, auf dem der Acrobat Reader 7.0 installiert ist die Pdf-Datei trotzdem über den Browser geladen? Gibt es auch unterschiedliche TAcroPdf-Versionen? Woran kann dies noch liegen?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz