PDF Viewer



  • Hallo Community

    Ich habe folgendes Problem.
    Ich möchte gern so eine Art Verwaltungsprogramm aufziehen, wo jeder Nachkucken kann was für etwas der Standart ist.

    Also man hat ne Auswahl z.B.
    Schaltkreis -> 2 Kanal -> Schaltung -> "Dateiname.pdf"

    Also so ungefähr 😉
    und wenn der Benutzer dann auf Dateiname.pdf klickt würde ich ihm gern in meinem Programm die PDF anzeigen. So ne Art PDF-Vorschau.

    Hat schon jemand Erfahrungen damit?!

    Mfg Alex



  • Hallo

    Du könntest die Pdf-Datei einfach mittels ShellExecute (Suchfunktion!) mit einem externen PDF-Programm öffnen lassen. Wenn du wirklich die Datei in deinem eigenen Programm anzeigen lassen willst must du eine externe Library suchen und einbinden. Hier im Forum dürften schon einige Threads zum Thema PDF-Library sein. Zum Beispiel dieser, nur einen Eintrag über deinem... 🙄

    bis bald
    akari



  • Gibts denn ne möglichkeit das Ganze dann in nem Image im eigenen Programm aufzuzeigen?!
    Shellexecute ist absolute notlösung.



  • Hallo

    TImage : nein
    Aber wie schon hier und in dem anderen Thread erwähnt gibt es externe Libraries die PDF darstellen können.

    bis bald
    akari



  • Eine weitere Möglichkeit wäre der als VCL-Komponente bereitgestellte Brwoser
    TCppWebBrowser? Ich gehe schwer davon aus das dieser die IE Libs verwendet.
    Wenn ja und auf dem Rechner z.B. Acrobat Reader installiert ist sollte er
    das PDF anzeigen. Neben den hier genannten Möglichkeiten ist das noch eine
    "einfache" Lösung. Externe Libs sollten da wesentlich aufwendiger werden
    insofern diese bereits existieren 😉

    Vielleicht hilft's.



  • Und wie würde das dann in CodeForm aussehen?!
    Zudem habe ich keinen TccpWebBrowser entdeckt.



  • Hallo

    Die Komponente TCppWebBrowser findest du im Tab "Internet". Sie ist seit BCB 5 enthalten. Beispiele dafür findest du in der BCB-Hilfe zur Komponente, in der FAQ hier im BCB-Forum sowie über die Forumssuchfunktion.

    bis bald
    akari



  • Hallo,
    also, den Webserver würde ich da nun überhaupt nicht einsetzen.

    Die pdf- Dateien kannst Du doch in einem OLE- Container darstellen, zumindest mit einem neuen Acrobat- Reader (bei älteren Versionen klappt das nicht, liegt aber am Reader). Aber das sollte ja kein Problem sein, die Downloads sind ja kostenlos.

    Der Quelltext ist dann trivial.

    if(OleContainer1 != 0) {
       AnsiString strFileName = "C:\\testpfad\\testdatei.pdf";
       TCreateInfo theInfo;
       theInfo.CreateType = ctFromFile;
       theInfo.ShowAsIcon = false;
       theInfo.FileName   = strFileName;
    
       if(OleContainer1->State != osEmpty) OleContainer1->DestroyObject();
       Application->ProcessMessages();
    
       OleContainer1->CreateObjectFromInfo(theInfo);
       }
    

    Dann hast Du es innerhalb Deines Programmes. Aber der Aufruf des Acrobat- Readers über ShellExecute hat ja auch Vorteile, Du kannst Feldinhalte füllen oder auch gleich drucken. Ich würde es also nicht als absolute Notlösung sehen.

    Schöne grüße

    Volker



  • Also ich hab jetzt eine Lösung mit dem TCppWebserver die mir an sich gut gefällt, da sie auf jeden Rechner läuft egal ob Mit Acrobat oder nich.

    Das mit ShellExecute ist bei mir übertrieben, da sich der Benutzer nur das Bild ankucken soll das er weiß wies aussieht, praktisch wie ein Katalog.



  • und wie sieht denn nun diese Implementierung mittels dieser Web-Komponente aus?

    Ich habe aktuell genau das gleiche Problem und diese gefunden Lösung würde doch super dieses Thread abschliessen



  • Habt natürlich recht, die Hilfe zu dieser Komponente ist selbsterklärend und es ist ja nur eine Zeile zu programmieren:

    CppWebBrowser1->Navigate(WideString("c:\\test.pdf"));


Anmelden zum Antworten