AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein pdf im TWebBrowser mit voreingestellten Zoom-Faktor

pdf im TWebBrowser mit voreingestellten Zoom-Faktor

Ein Thema von Ykcim · begonnen am 17. Jul 2017 · letzter Beitrag vom 18. Jul 2017
Antwort Antwort
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
799 Beiträge
 
Delphi 10.4 Sydney
 
#1

pdf im TWebBrowser mit voreingestellten Zoom-Faktor

  Alt 17. Jul 2017, 17:11
Hallo Zusammen,

ich möchte ein pdf-Dokument in einem TWebBrowser anzeigen. Allerdings möchte ich, dass immer die ganze DIN A4 Seite angezeigt wird. Dazu muss ich etwas kleiner Zoomen. Das bekomme ich leider nicht hin...

Hiermit rufe das pdf-Dokument aus:
Delphi-Quellcode:
   if OpenDialog.Execute then begin
      WB_O1.Navigate(OpenDialog.FileName);
   end;
Jetzt benötige ich den Befehl, mit dem sagen kann, wie groß das Dokument angezeigt werden soll...

Kann mir jemand einen Tip geben?

Vielen Dank im Voraus
Patrick
Patrick
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.269 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: pdf im TWebBrowser mit voreingestellten Zoom-Faktor

  Alt 17. Jul 2017, 17:26
Hallo,

Delphi-Quellcode:
const
  OLECMDID_OPTICAL_ZOOM = 63;
var
  zoom : OleVariant;
  iZoom : Integer;
begin
  iZoom:= 80; // z.B. 80%
  zoom := iZoom;
  WebBrowser.ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_PROMPTUSER, zoom);
Heiko
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
799 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: pdf im TWebBrowser mit voreingestellten Zoom-Faktor

  Alt 17. Jul 2017, 17:33
Hallo,

vielen Dank für die schnelle Antwort!

Ich habe folgende Fehlermeldung erhalten:
Code:
Exception-Klasse EOleException mit Meldung 'Es wurde versucht, ein Drop-Ziel zu widerrufen, das nicht registriert wurde'. Prozess Pinnwand.exe (10568)
Den Code habe ich wie folgte eingebunden:
Delphi-Quellcode:
procedure TForm_Pinnwand.Dateiladen1Click(Sender: TObject);
const
  OLECMDID_OPTICAL_ZOOM = 63;
var
  zoom : OleVariant;
  iZoom : Integer;
  fileDest:string;
begin
   iZoom:= 40; // z.B. 80%
   zoom := iZoom;
   if OpenDialog.Execute then begin
      with (PDF_Menu.PopupComponent as TWebBrowser) do begin
         Navigate(OpenDialog.FileName);
         ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_PROMPTUSER, zoom);
      end;
   end;
end;
Vielen Dank
Patrick
Patrick

Geändert von Ykcim (17. Jul 2017 um 17:37 Uhr)
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#4

AW: pdf im TWebBrowser mit voreingestellten Zoom-Faktor

  Alt 17. Jul 2017, 19:34
Hmm..

Könnte es sein, dass die Seite erst komplett geladen werden muss, bevor das Zoom gemacht werden kann?
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
799 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: pdf im TWebBrowser mit voreingestellten Zoom-Faktor

  Alt 18. Jul 2017, 09:23
Guten Morgen,

ich fürchte, dass ist nicht die Lösung. Ich habe
Code:
Refresh2
wie folgt eingebunden, aber ich bekomme eine 'unbekannter Fehler' Meldung...
Delphi-Quellcode:
procedure TForm_Pinnwand.Dateiladen1Click(Sender: TObject);
const
  OLECMDID_OPTICAL_ZOOM = 63;
var
  zoom : OleVariant;
  iZoom : Integer;
  fileDest:string;
begin
   iZoom:= 40; // z.B. 40%
   zoom := iZoom;
   if OpenDialog.Execute then begin
      with (PDF_Menu.PopupComponent as TWebBrowser) do begin
         Navigate(OpenDialog.FileName);
         Refresh2;
         ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_PROMPTUSER, zoom);
      end;
   end;
end;

Mal in eine andere Richtung gedacht:
Im WebBrowser wird doch mein Acrobat PDF-Reader, den ich installiert habe und der mein Standardprogramm für pdf-Dokumente ist, geöffnet. Gibt es eine Möglichkeit, wie ich den direkt in meinem TWebBrowser ansprechen kann?
Wenn ich den Reader als ActiveX Steuerelement anspreche, dann habe ich das so gemacht...
Delphi-Quellcode:
procedure TForm_Pinnwand.Load_PDF(PDF_Viewer: TAcroPDF; Datei: string);
begin
   if FileExists(Datei) then begin
      PDF_Viewer.Visible:=true;
      PDF_Viewer.LoadFile(Datei);
      PDF_Viewer.Tag:=1;
      PDF_Viewer.setZoomScroll(ZoomFaktor,0,0);//Damit die ganze A4-Seite angezeigt wird
      PDF_Viewer.setShowScrollbars(false);
      PDF_Viewer.setShowToolbar(false);
      PDF_Viewer.setLayoutMode('SinglePage');
      PDF_Viewer.setPageMode('none');
      //PDF_Viewer.setView('FitV');
   end
   else begin
      PDF_Viewer.Visible:=false;
      PDF_Viewer.Tag:=0;
   end;
end;
Kann ich das irgendwie im TWebBrowser hinbekommen? So etwas wie
Code:
WebBrowser.OleObject.setZoomScroll(...)
???

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#6

AW: pdf im TWebBrowser mit voreingestellten Zoom-Faktor

  Alt 18. Jul 2017, 11:35
Hmm..


Refresh2 ist mir unbekannt..

Das Warten auf vollständiges Laden der Webseite/Dokumentes geht glaube ich anders:

http://www.delphipraxis.net/38334-wa...laden-hat.html
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.269 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: pdf im TWebBrowser mit voreingestellten Zoom-Faktor

  Alt 18. Jul 2017, 11:59
Hallo,
nach deinem LoadFromFile fehlt noch was.

Delphi-Quellcode:
    while (WebBrowser.ReadyState<>READYSTATE_COMPLETE)and(WebBrowser.Document=nil) and
          ((WebBrowser.Document AS IHTMLDocument2).readyState<>'complete') do
      Application.ProcessMessages;
Wie bereits schon richtig gesagt wurde,
muss das Dokument vollständig geladen sein, damit das Zoom klappt.
Heiko
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:33 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