Entwickler-Ecke
Datenbanken - pdf-Dateien aus dem Delphi Programm anschauen
Hänsel - Do 24.04.14 09:31
Titel: pdf-Dateien aus dem Delphi Programm anschauen
Ich habe mehrere .pdf Dateien welche einen eindeutigen Namen haben. Wie kann ich mit Hilfe eines Button diese mir auf dem Bildschirm anschauen? Ich habe Windows 7 und Delphi X2.
baumina - Do 24.04.14 09:55
Du kannst entweder mit ShellExecute das Standard-Anzeigeprogramm für pdf-Dateien starten, oder Du zeigst das pdf-Dokument in einem TWebBrowser an.
Beides setzt voraus, dass ein PDF-Anzeigeprogramm auf dem Rechner installiert ist.
Delete - Do 24.04.14 10:38
Es gibt noch eine dritte Möglichkeit, die voraussetzt, das der Adobe-Reader installiert ist: Erzeuge und verwende die Unit AcroPDFLib_TLB. Erzeugt man ein Package, verfügt man gar über eine Anzeige-Komponente, die zur Laufzeit wie der leibhaftige Adobe-Reader bedient werden kann.
Delete - Do 24.04.14 14:19
Guckst Du hier:
http://www.delphipraxis.net/1245493-post8.html
Es gibt mehrere Möglichkeiten, ein PDF zu öffnen:
Mit der Übergabe des Parameters
open wird die Anwendung gestartet,
die unter shell/open/command bzw. shell/read/command steht.
Beispiel:
Quelltext
1: 2:
| [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice] "ProgId"="FoxitReader.Document" |
Mit
nil wird die
Standardanwendung gestartet.
http://msdn.microsoft.com/de-de/library/aa559675.aspx
Diese können identisch sein.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41:
| procedure TForm1.Button3Click(Sender: TObject); var fn : String; begin fn:=ExtractFilePath(ParamStr(0)) +'test-1.pdf'; ShellExecute(0,nil,PChar(fn),NIL,NIL,SW_SHOWNORMAL); end;
procedure TForm1.Button4Click(Sender: TObject); var fn : String; begin fn:=ExtractFilePath(ParamStr(0)) +'test-1.pdf'; ShellExecute(0,PChar('OPEN'),PChar(fn),NIL,NIL,SW_SHOWNORMAL); end;
procedure TForm1.Button5Click(Sender: TObject); var fn : String; begin fn:=ExtractFilePath(ParamStr(0)) +'test-1.pdf'; webbrowser1.Navigate(fn); end;
procedure TForm1.Button6Click(Sender: TObject); var fn : String; begin fn:=ExtractFilePath(ParamStr(0)) +'test-1.pdf'; ShellExecute(0,PChar('Foxit Reader.exe'),PChar(fn),NIL,NIL,SW_SHOWNORMAL); end; procedure TForm1.Button7Click(Sender: TObject); var fn : String; begin fn:=ExtractFilePath(ParamStr(0)) +'test-1.pdf'; ShellExecute(0, 'open','acrord32', PChar(fn),NIL,SW_SHOWNORMAL); end;
procedure TForm1.Button9Click(Sender: TObject); var fn : String; begin fn:=ExtractFilePath(ParamStr(0)) +'test-1.pdf'; ShellExecute(0, 'open','acrord32', PChar('/p /h ' + fn), nil, SW_HIDE); end; |
PARAMETER [
http://www.adobe.com/devnet/acrobat/pdfs/pdf_open_parameters.pdf]
Open a PDF file: AcroRd32.exe PdfFile
Open a PDF file in a new instance of Adobe Reader: AcroRd32.exe /N PdfFile
Open a PDF file at page 7: AcroRd32.exe /A "page=7=OpenActions" PdfFile
Open a PDF file with navigation pane active, zoom out to 50%, and search for and highlight the word "batch":
AcroRd32.exe /A "zoom=50&navpanes=1=OpenActions&search=batch" PdfFile
Print a PDF file with dialog: AcroRd32.exe /P PdfFile
Print a PDF file silently: AcroRd32.exe /N /T PdfFile PrinterName [ PrinterDriver [ PrinterPort ] ]
Moderiert von Th69: Code-Tags hinzugefügt
Moderiert von Th69: URL-Tag korrigiert
UGrohne - Do 24.04.14 21:36
Perlsau hat folgendes geschrieben : |
Es gibt noch eine dritte Möglichkeit, die voraussetzt, das der Adobe-Reader installiert ist: Erzeuge und verwende die Unit AcroPDFLib_TLB. Erzeugt man ein Package, verfügt man gar über eine Anzeige-Komponente, die zur Laufzeit wie der leibhaftige Adobe-Reader bedient werden kann. |
Wobei man aber vorsichtig sein muss, mit dieser Variante. Ich weiß nicht, wie das aktuell Adobe handhabt, aber von der 5er auf die 6er-Version hat Adobe die Schnittstelle komplett umgekrempelt, sodass sie nicht mehr kompatibel war. Deswegen bin ich damals dann auch auf TWebBrowser umgestiegen, da es das Ganze dem IE überlässt. Oder eben wie gesagt, native Komponenten.
hydemarie - So 23.06.19 23:56
Aus aktuellem Anlass hole ich das mal hoch: 2019 können doch die meisten Webbrowser (über PDF.js oder PDFium) PDF-Dateien anzeigen. Sollte Firemonkeys TWebBrowser das daher nicht auch unterstützen? Die Embarcaderowebsite gibt dazu keine Informationen her.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!