PDF in eine MFC Anwendung integrieren

Gast #5439369
Lesenswert?

Hallo Zusammen,

ich habe einen Application, die in MFC programmiert wurde.
Der Kunde möchte gerne auf einen Knopdruck, dass die Anleitung(PDF) sich 
öffnen.

Meine Frage an der jenigen, die sich mit MFC sich auskennen: Wie 
Umständlich ist so eine Erweiterung?
Worauf ist zu achten?

Danke in Voraus
Persönliche Seite #5439376
Lesenswert?

Mit MFC hat das nicht zwingend etwas zu tun. Die einfachste 
Herangehensweise ist es, dem Betriebssystem die Datei zu übergeben - das 
sucht dann das zuständige Programm zur Anzeige aus und ruft es auf.

Das setzt natürlich voraus, daß auf den verwendeten Rechnern ein 
PDF-Betrachter installiert ist, was aber bei neueren Windows-Versionen 
tatsächlich der Fall ist.

Alternativ kannst Du mit Deinem Programm beispielsweise SumatraPDF 
ausliefern, das ist kompakt und startet (im Gegensatz zu Adobes Acrobat) 
sehr schnell.

Einen PDF-Betrachter in Dein Programm zu integrieren ist erheblich 
aufwendiger; es gibt prinzipiell die Möglichkeit, einen installierten 
Acrobat Reader als ActiveX-Komponente anzusteuern, das aber ist eine 
seit Jahrzehnten(!) ungepflegte und sehr instabile Angelegenheit, und 
setzt natürlich auch wieder die Installation des Acrobat Reader voraus.

Du kannst auch eine kommerzielle Komponente zum Anzeigen von PDF-Dateien 
verwenden, so vertreibt die Firma "Glyph and Cog" einen gut 
integrierbaren PDF-Betrachter: 
https://www.glyphandcog.com/XpdfViewer.html

Ob Deinem Kunden aber dessen Preis gefällt ...

Sonst ist Selbstbasteln angesagt. SumatraPDF liegt im Sourcecode vor, 
aber der Aufriss, daraus einen als DLL oder statische Library 
integrierbaren Betrachter zu machen, dürfte ein erheblicher sein.
Gast #5439414
Lesenswert?

Rufus Τ. F. schrieb:
> Mit MFC hat das nicht zwingend etwas zu tun. Die einfachste
> Herangehensweise ist es, dem Betriebssystem die Datei zu übergeben - das
> sucht dann das zuständige Programm zur Anzeige aus und ruft es auf.

was meinst du bitte damit?
Wie kann das Betriebsystem die Datei übergeben?


Eine zweite Frage bitte: Gibt es bitte einen Tutorial für MFC und PDF 
Integration?

Danke
Gast #5439457
Lesenswert?

Marcel_Bern schrieb:
> Wie kann das Betriebsystem die Datei übergeben?

Wie bereits geschrieben, mit ShellExecute. Dann sucht Windows 
selbstständig nach einem Programm zum Öffnen der Datei, genau so als 
hättest du sie im Explorer angeklickt. Diese Funktion ist eine Windows 
Funktion, die hat mir MFC nix zu tun, die funktioniert aus allen Windows 
Programmen heraus.

Marcel_Bern schrieb:
> Eine zweite Frage bitte: Gibt es bitte einen Tutorial für MFC und PDF
> Integration?

Brauchst du wirklich für eine einzelne Zeile ein Tutorial?
Gast #5439543
Lesenswert?

Marcel_Bern schrieb:
> Eine andere Frage:

Um das zu präzisieren: für die Acrobat Active-X-Komponente muss 
natürlich der Acrobat Reader installiert sein. Da der kostenlos ist, ist 
das wohl zumutbar, ich fürchte aber, dass du den nicht selbst mit 
ausliefern darfst, nur einen Link dazu.

Für die ShellExecute-Variante (unbedingt bevorzugt) kann es ein 
beliebiger PDF-Reader sein, er muss aber in Windows als Standardprogramm 
für PDF registriert sein. Die meisten Reader machen das schon bei der 
Installation. Einfach mal ein PDF anklicken, was für ein Programm dann 
startet. Das Problem: das muss der Kunde machen, schwierig wenn er noch 
weniger Ahnung hat.

In Officedateien oder in HTML-Webseiten genügt ein Link auf eine 
PDF-Datei, dann startet ein Reader oder es kommt die Box mit der Frage 
Anzeigen, Speichern. Aber auch das hängt vom System des Kunden ab, viel 
Spass beim Service.

Georg
Gast #5439577
Lesenswert?

Ich habe das acrobat von meinem Rechner entfernt und habe versucht in 
einem Demo das
1
ShellExecute(NULL, _T("open"), _T("irgendwas.pdf"), NULL, NULL, 0);
zu starten.

Das PDF wird schon geöffnet aber in Firefox.
Warum gerade Firefox?
Gast #5439968
Lesenswert?

Marcel_Bern schrieb:
> Warum gerade Firefox?

Weil Firefox als Standardprogramm für PDF eingerichtet ist, nachdem du 
den Acrobat Reader entfernt hast. Hättest du in der Zwischenzeit ein 
anderes PDF-Anzeigeprogramm installiert wäre es eben das.

Wie du siehst gibt es unzählige verschiedene Konstellationen, die sich 
auch jederzeit ändern können.

Sicher bist du nur, wenn du in die Software selbst eine PDF-Anzeige 
einbaust, aber so wie du fragst liegt das Lichtjahre jenseits deiner 
Möglichkeiten.

Georg
#5440496
Lesenswert?

georg schrieb:
> Um das zu präzisieren: für die Acrobat Active-X-Komponente muss
> natürlich der Acrobat Reader installiert sein. Da der kostenlos ist, ist
> das wohl zumutbar, ich fürchte aber, dass du den nicht selbst mit
> ausliefern darfst, nur einen Link dazu.

Die meisten machen es zwar, aber ein Zwang, ausgerechnet Adobe-Software 
installieren zu müssen, behagt nicht jedem. Auch kostenlos ist manchmal 
zu teuer.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren