Ich möchte wissen, wie entweder zu tun:Delphi XE8 Laden von PDF-Datei
auf eine Schaltfläche klicken, aus einem Verzeichnis eine PDF-Datei öffnen.
Zeigen Sie eine PDF-Datei auf dem Formular an.
Ich möchte wissen, wie entweder zu tun:Delphi XE8 Laden von PDF-Datei
auf eine Schaltfläche klicken, aus einem Verzeichnis eine PDF-Datei öffnen.
Zeigen Sie eine PDF-Datei auf dem Formular an.
Sie haben nicht alle die Notwendigkeit Sprung durch Reifen Sie tun. Windows findet die mit PDF-Dateien verknüpfte Anwendung für Sie.
procedure TForm1.Button1Click(Sender: TObject);
var
s: String;
Ret: DWord;
begin
s := 'C:\MyFiles\MyFile.pdf';
Ret := ShellExecute(Handle, nil, PChar(s), nil, nil, SW_SHOW);
if Ret < 32 then
ShowMessage(SysErrorMessage(GetLastError));
end;
Hinweis: Normalerweise sollten Sie nie Anruf eine WinAPI Funktion ohne den Rückgabewert zu überprüfen. In diesem Fall wissen Sie, ob es nicht funktioniert hat, weil das PDF nicht geöffnet wird.
Die Fehlerbehandlung ist unterbrochen. GetLastError kann nicht mit ShellExecute verwendet werden. Verwenden Sie ShellExecuteEx für ordnungsgemäße Berichterstattung. –
ein PDF einzubetten, die ersten zwei Gedanken, die in den Sinn kommen würde
1) Suche nach einem COM-Objekt, das PDF-Dateien unterstützt - eine schnelle Suche brachte dies: http://www.biopdf.com/guide/com_interface.php, aber es scheint zu sein, Andere.
2) Im schlimmsten Fall können Sie eine Web-Panel einbetten, die darin entlang dieser Linien HTML-Code hat:
<object data="test.pdf" type="application/pdf" width="500" height="300"> alt : <a href="test.pdf">test.pdf</a> </object>
Beide Punkte sind für die Frage leider irrelevant. –
@ArnaudBouchez beziehen sie sich nicht auf die zweite Frage von OP? –
@ RenéHoffmann Ich würde niemals ein HTML-Panel zum Einbetten einer PDF in die App verwenden. Der richtige Weg ist die Verwendung von ActiveX IMHO, z.B. als https://www.youtube.com/watch?v=n8qDdal-6mY –
danke für die Antworten, aber ich kam schließlich dazu (Ich habe Delphi seit ein paar Jahren nicht mehr verwendet, vergaß die Verwendungen).
So war es: "Öffnen Sie auf Knopfdruck eine PDF-Datei aus einem Verzeichnis."
uses shellApi;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle, 'open', 'C:\pathwaytopdf.pdf', nil, nil, SW_SHOWNORMAL);
end;
end.
Vielen Dank für die Antworten.
Gern geschehen! –
Sie versuchen nicht, so etwas zu tun. Prozeduren geben keine Werte zurück, daher ist kein * Ergebnis * verfügbar. Was du * s * zugewiesen hast, ist Unsinn; Es entspricht nicht dem gültigen Namen einer PDF-Datei. Veröffentlichen Sie den ** tatsächlichen Code **, den Sie zu verwenden versucht haben, in einer Form, die tatsächlich kompiliert wird. Außerdem ist dies eine * Frage und Antwort * Seite, nicht * Fragen *. Wenn Sie mehrere Fragen haben, erstellen Sie mehrere Beiträge, um sie zu fragen, sofern sie nicht eng miteinander verbunden sind. In diesem Fall sind sie es nicht, weil es darum geht, ein PDF zu öffnen, das mit der API gut funktioniert, und in der zweiten geht es um das Einbetten, was nicht der Fall ist. –
Haben Sie die Vollversion von Adobe Acrobat installiert? Der Grund, warum ich frage, ist, dass es möglich ist, mit seinen Automatisierungsobjekten eine PDF-Datei zu öffnen und sie in einem Fenster anzuzeigen, das von Ihrer Delphi-App gehostet wird. Wenn das ist, was du tun willst, poste ein neues q und frage genau, wie das geht. Es gibt andere Möglichkeiten, aber nur diese wird das Dokument wie Acrobat machen. – MartynA