Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   AcrobatReader 32bit oder 64bit aufrufen (https://www.delphipraxis.net/209346-acrobatreader-32bit-oder-64bit-aufrufen.html)

harfes 25. Nov 2021 08:28

AcrobatReader 32bit oder 64bit aufrufen
 
Da es den AcrobatReader mittlerweile in 32bit und 64bit gibt, frage ich mich, wie ich das für das Anzeigen einer PDF auswerten muss. Bisher habe ich das PDF immer mit

shellexecute ( Application.handle, 'open',pchar('AcroRd32'), pchar ( datei ), '', SW_SHOWNORMAL );

angezeigt, aber das dürfte bei einem 64bit AcrobatReader nicht mehr funktionieren. Wie kann ich abfragen, welche Acrobat-Version installiert ist und wie dann das PDF anzeigen?

Hartmut

hoika 25. Nov 2021 09:11

AW: AcrobatReader 32bit oder 64bit aufrufen
 
Hallo,
warum gibst Du das Programm vor?
Der Nutzer könnte auch ein anderes PDF-Anzeige-Programm installiert haben.

Lass doch Windows sich drum kümmern, wer die PDF aufmacht.
Lass also den Exe-Namen im ShellExecute einfach weg ("").

BerndS 25. Nov 2021 09:13

AW: AcrobatReader 32bit oder 64bit aufrufen
 
Ich benutze folgenden Aufruf, dann wird die Exe vom System ausgewählt.
Wichtig ist nur, das die Datei mit .pdf endet.
Delphi-Quellcode:
 ShellExecute(Handle, 'open', PChar(FN), nil, PChar(ExtractFileDir(FN)), SW_SHOW);
Acrobat hat bei einem Update automaisch auf 64bit umgestellt.

Hoika war schneller.

harfes 25. Nov 2021 09:29

AW: AcrobatReader 32bit oder 64bit aufrufen
 
Danke euch beiden!

Ehrlich gesagt, habe ich bisher noch nicht darüber nachgedacht, Windows das zu überlassen - bisher war der AcrobatReader eigentlich überall installiert (und von den PDF-Darstellungen in den Browsern halt ich bisher nix, da grottenschlecht). Der Grund für meine Frage war, das bei einigen Kunden Acrobat einfach (und ohne Nachfrage) auf die 64bit-Version upgedated wurde...auch wenn vorher die 32bit installiert war.

Hartmut

freimatz 26. Nov 2021 10:33

AW: AcrobatReader 32bit oder 64bit aufrufen
 
Oder machst es selber z.B. mit https://www.devexpress.com/products/vcl/pdfviewer/

himitsu 26. Nov 2021 10:52

AW: AcrobatReader 32bit oder 64bit aufrufen
 
Zitat:

bisher war der AcrobatReader eigentlich überall installiert
Seit nahezu jeder Browser PDFs anzeigen kann (PDF.js), gibt es kaum einen Grund sich Acrobat weiterhin antun zu wollen.

Die Embedded-Variante (ActiveX) des Acrobat ist kaum nutzbar, macht regelmäßig Probleme, und wird offiziell auch garnicht mehr unterstützt (Acrobat testet hier ausschließelich die Browserintegration, welche man aber nun nicht mehr braucht).
Gerade wenn es um "kleinere" Vorschaubilder ging, wurde es mit den Sidebars und damit, dass Acrobat sich böswillig versucht den Eingabefokus zu krallen, immer wieder genervt, weil sich der Dreck ständig neu reinschlich und Methoden zum Steuern/Ausblenden regelmäßig geändert/blockiert wurden.

Nur wenn es darum geht PDFs gezielt auf einem bestimmten Drucker rauszubekommen, waren Acrobat, Foxit oder Dergleichen im Vorteil.

Aber Anzeige und Druck lösen wir inzwischen auch über DevExpress, auch wenn die Komponente nicht die Schnellste ist und nicht alle PDF-Features bietet (es bessert sich aber immer mehr) und sind damit nun vollkommen unabhängig von willkürlichen Updates (Acrobat und Windows).

Alternativ gibt es auch noch Delphi-Komponenten von Gnostice oder Synopse.

Redeemer 26. Nov 2021 12:39

AW: AcrobatReader 32bit oder 64bit aufrufen
 
Zitat:

Zitat von himitsu (Beitrag 1498229)
Nur wenn es darum geht PDFs gezielt auf einem bestimmten Drucker rauszubekommen, waren Acrobat, Foxit oder Dergleichen im Vorteil.

Wir nehmen dafür Sumatra, aber auch für die Anzeige. Das ist von der Lizenz her einfacher.

Der schöne Günther 26. Nov 2021 12:47

AW: AcrobatReader 32bit oder 64bit aufrufen
 
Zitat:

Zitat von himitsu (Beitrag 1498229)
(Acrobat testet hier ausschließelich die Browserintegration, welche man aber nun nicht mehr braucht)

Ich habe in unserem Hauptprodukt weiterhin den Adobe Reader (über den TWebBrowser) für PDF-Anzeige drin, bin aber froh wenn ich den bald durch den WebView2 ersetzen kann. Das war immer ein bisschen eine Zitterpartie.

Bei einem anderen Produkt haben wir schon vor über einem Jahr auf WebView2 umgestellt, und es funktioniert fantastisch.

Bernhard Geyer 26. Nov 2021 16:05

AW: AcrobatReader 32bit oder 64bit aufrufen
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1498246)
Bei einem anderen Produkt haben wir schon vor über einem Jahr auf WebView2 umgestellt, und es funktioniert fantastisch.

Technisch. Super. Einfacher zu integrieren als die CEF4-Komponenten auf direkt Chromium-Basis welche irgendwann bei uns kene Darstellung mehr brauchten.
Einig die bescheuerte Idee von MS, das man die installierte Edge-Version nicht nutzen darf, ist sch***
Entweder selbst alles mitliefern oder den "Edge Distributed"-Installer ausführen.

venice2 26. Nov 2021 17:10

AW: AcrobatReader 32bit oder 64bit aufrufen
 
Ich würde das vom System verwalten lassen mit dem Programm welches *.pdf als Extension registriert haben.
Bei mir wurde Edge deinstalliert in dem fall würde deine Anwendung nicht mehr laufen oder?
Wenn du webview2 verwendest.

Harry Stahl 26. Nov 2021 18:19

AW: AcrobatReader 32bit oder 64bit aufrufen
 
Zitat:

Zitat von harfes (Beitrag 1498144)
Danke euch beiden!

Ehrlich gesagt, habe ich bisher noch nicht darüber nachgedacht, Windows das zu überlassen - bisher war der AcrobatReader eigentlich überall installiert (und von den PDF-Darstellungen in den Browsern halt ich bisher nix, da grottenschlecht). Der Grund für meine Frage war, das bei einigen Kunden Acrobat einfach (und ohne Nachfrage) auf die 64bit-Version upgedated wurde...auch wenn vorher die 32bit installiert war.

Hartmut

Darauf würde ich mich auch nicht verlassen. Ich habe hier auf keinem meiner Rechner Adobe Acrobat installiert (ist mir zu unsicher), entweder nutze ich PDF-Anzeige des Browsers oder mein eigenes PDF-Manager Programm.

Warum machst Du es nicht so, dass Du in den Einstellungen Deines Programmes eine optionale Einstellungsmöglichkeit angibst für das PDF-Anzeige-Programm? Das mache ich in einigen meiner Anwendungen und fahre damit ganz gut. Entweder es gibt vom User einen Eintrag, dann startet man dessen gewünschtes Programm. Oder es gibt keinen Eintrag und überlässt dann Windows mit der aktuellen Systemeinstellung die Entscheidung.

In zentralen Programmen, wo ich kein externes Programm für PDF-Anzeige verwenden möchte (z.B. Rechnungs- oder E-Mail-Programm) habe ich meine eigenen Anzeige-Module (Quick-PDF). Es gibt aber auch neue Sachen von TMS (WX-Pack) mit fertigen Komponenten, die sind dann allerdings auf Windows 10 oder neuer beschränkt.

Der schöne Günther 26. Nov 2021 18:30

AW: AcrobatReader 32bit oder 64bit aufrufen
 
Zitat:

Zitat von venice2 (Beitrag 1498266)
Bei mir wurde Edge deinstalliert in dem fall würde deine Anwendung nicht mehr laufen oder?
Wenn du webview2 verwendest.

Hat er doch schon geschrieben: WebView2 ist völlig unabhängig vom installierten Browser. Du lieferst den Kram mit deiner Anwendung mit und hast dort auch die Wahl ob die Komponenten über Windows Update mit geupdatet werden oder man fest auf einer Version bleibt.

harfes 26. Nov 2021 20:13

AW: AcrobatReader 32bit oder 64bit aufrufen
 
Interessante Ansätze (Quick-PDF, WebView2, etc.)...das werde ich mir mal in Ruhe anschauen. Aktuell habe ich das Problem so gelöst, dass ich das Programm nutze, das bei Windows eingetragen ist - wie von Hoika und BerndS vorgeschlagen. Das konnte ich erstmal sehr schnell umsetzen und es funktioniert jetzt auch nach dem frechen und ungefragten Update von Acrobat auf die 64bit-Version. Langfristig ist das Ziel aber, vom PDF-Programm in Windows unabhängig zu werden und das werde ich dann bei einer der nächsten grösseren Revisionen mit einbauen.

Hartmut


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz