Autor Beitrag
Hänsel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110



BeitragVerfasst: Do 24.04.14 08:31 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 305
Erhaltene Danke: 61

Win 7
Delphi 10.2 Tokyo Enterprise
BeitragVerfasst: Do 24.04.14 08: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.
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 24.04.14 09: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.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10119
Erhaltene Danke: 1226

W2k .. W7pro .. W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 24.04.14 10:22 
Moin!

Der Vollständigkeit halber: es gibt sogar native Komponenten (die dann auch die Bearbeitung erlauben), z.B. das hier: www.gnostice.com/pdftoolkit_vcl.asp

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 24.04.14 13:19 
Guckst Du hier:
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:
ausblenden Quelltext
1:
2:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice]
"ProgId"="FoxitReader.Document"

Mit nil wird die Standardanwendung gestartet.
msdn.microsoft.com/d...ibrary/aa559675.aspx
Diese können identisch sein.

ausblenden volle Höhe 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;
//AcroRd32.exe
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); //PRINT
var fn : String;
begin
fn:=ExtractFilePath(ParamStr(0)) +'test-1.pdf';
ShellExecute(0'open','acrord32', PChar('/p /h ' + fn), nil, SW_HIDE);
end;


PARAMETER
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 user profile iconTh69: Code-Tags hinzugefügt
Moderiert von user profile iconTh69: URL-Tag korrigiert


Zuletzt bearbeitet von hathor am Do 24.04.14 20:59, insgesamt 3-mal bearbeitet
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Co-Administrator
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Do 24.04.14 20:36 
user profile iconPerlsau hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 422
Erhaltene Danke: 51



BeitragVerfasst: So 23.06.19 22: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.