Forum: PC-Programmierung PDF in eine MFC Anwendung integrieren


von Marcel_Bern (Gast)


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

von Dr. Sommer (Gast)


Lesenswert?

Einfach per ShellExecute den Standard PDF Viewer aufrufen? Es muss dann 
halt einer installiert sein, aber das haben die meisten ja.

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Marcel_Bern (Gast)


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

von Dr. Sommer (Gast)


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?

von Marcel_Bern (Gast)


Lesenswert?

Hallo,

Einen andere Frage:
wenn das Acrobat Reader nicht auf dem PC vorhanden ist, gibt es einen 
andere Möglichkeit trotzdem das PDF zu öffnen?

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Marcel_Bern schrieb:
> Hallo,
>
> Einen andere Frage:
> wenn das Acrobat Reader nicht auf dem PC vorhanden ist, gibt es einen
> andere Möglichkeit trotzdem das PDF zu öffnen?

"Ich zeige dir ein PDF an"-Programme gibt es säckeweise.
Google hilft.

Mit ShellExecute() ist das banal einzubinden.

von Marcel_Bern (Gast)


Lesenswert?

Joachim D. schrieb:
> Mit ShellExecute() ist das banal einzubinden

Mit diese FKT lässt sich eine PDF einfach öffnen.

Diese FKT setzt voraus das Acrobat Reader vorhanden sein sollte.

von Marcel_Bern (Gast)


Lesenswert?

Diese Lösung setzt voraus, dass das Acrobat installiert ist.
Eine andere Frage: Gibt es eine andere Möglichkeit ohne der acrobat 
installiert zu haben einen PDF Dokument zu öffnen?

von georg (Gast)


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

von Marcel_Bern (Gast)


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?

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Weil sie in den Fuchs einen PDF-Anzeiger reingepfriemelt haben.

von Marcel_Bern (Gast)


Lesenswert?

Joachim D. schrieb:
> Weil sie in den Fuchs einen PDF-Anzeiger reingepfriemelt haben.

Sorry
Das verstehe ich wirklich nicht

von Marcel_Bern (Gast)


Lesenswert?

Da die Application auf einen PC (nur touchscreen) installiert ist, habe 
ich folgende Frage: Wie sieht es aus mit der Eingabemöglichkeiten?

Danke

von Marcel_Bern (Gast)


Lesenswert?

anders gefragt: Wie sieht es aus, wenn ich das PDF in der Applcation in 
einem extra registerkarte öffne?

von georg (Gast)


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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Marcel_Bern schrieb:
> Wie sieht es aus, wenn ich das PDF in der Applcation in einem extra
> registerkarte öffne?

Wenn das bedeuten soll, daß Dein Programm die PDF-Datei anzeigen soll, 
dann s.o. - wie man PDF-Anzeiger integrieren kann, hab' ich Dir heute um 
Dreiviertel Neun schon beschrieben.

von Blob (Gast)


Lesenswert?


von (prx) A. K. (prx)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.