Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

RESX σε VB 2010 και PDF

Îåêßíçóå áðü ôï ìÝëïò Q-apprentice. Τελευταία δημοσίευση από το μέλος Q-apprentice στις 16-12-2011, 00:27. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  06-12-2011, 15:25 68524

    RESX σε VB 2010 και PDF

    Καλημέρα σε όλους... ψάχνω να βρω ένα τρόπο ώστε να μπορώ να ανοίξω ένα PDF αρχείο που το έχω προσθέσει στσ resources του project μου (στην ουσία πρόκειτε για 1 help file σε pdf φορματ) και θέλω με το κλασσικό button click event να μπορεί η εφαρμογή να το ανοίγει για να το βλέπουν οι χρήστες. Τι μπορώ να κάνω ;

    Αντώνης Ε. Κόλλιας
  •  06-12-2011, 20:53 68526 σε απάντηση της 68524

    Απ: RESX σε VB 2010 και PDF

    Επειδή το PDF ήταν ένα forma της Adobe δυστυχώς δεν θα βρεις κάτι έτοιμο από τη Microsoft.

    Σίγουρα υπάρχουν πολλά 3rd party controls που θα κάνουν αυτή την δουλειά τα οποία όμως δυστυχώς θα κοστίζουν. Δεν γνωρίζω πόσο αλλά υποθέτω όχι πάρα πολλά. Αν το budget σου το επιτρέπει μπορείς να πάρεις κάποιο. Από την άλλη επειδή το PDF έχει γίνει πλέον Standard και μπορεί ο κάθε ένας να φτιάχτει controls για αυτό χωρίς να πληρώνει δικαιώματα στην Adobe ίσως να υπάρχουν και free controls που όμως δεν έχω κανένα να υπόψιν μου να σου προτείνω.

    Από την άλλη αν έχεις εγκαταστήσει στο μηχάνημά σου το Adobe Acrobat PDF Reader έστω και την δωρεάν έκδοση, τότε σου εγκαθιστά στο GAC ένα COM control που λέγεται Adobe PDF Reader. Μπορείς να βάλεις το control στην Toolbox του Visual Studio και να το χρησιμοποιήσεις κανονικά όπως όλα τα controls. Αν δουλέυεις σε WPF δεν θα παίξει. To control θα το βρεις στο COM Components Tab αφού έχεις κάνει δεξί κλικ επάνω στην Toolbox και έχεις επιλέξει Add Item...

    Ελπίζω να βοήθησα.

  •  06-12-2011, 21:14 68527 σε απάντηση της 68526

    Απ: RESX σε VB 2010 και PDF

    Αλήθεια, ΓΙΑΤΙ να βάλεις ένα PDF αντί για ένα κανονικό Help αρχείο? Πέρα από το ότι ΔΕΝ έχεις προβλήματα πως να το εμφανίσεις, το Help επιτρέπει context-sensitive help, κάτι που το PDF δεν επιτρέπει με κανένα τρόπο. Μάλιστα, όταν λέμε Help εννοούμε .... Help, το οποίο δουλεύει με F1 και εμφανίζει πληροφορίες για την οθόνη ή το control το οποίο έχει επιλέξει ο χρήστης κα΄θε στιγμή.

    Αν θέλεις να δώσεις το έντυπο manual μαζί με το πρόγραμμα, απλά βάλτο μαζί και αυτό στο setup. Αν θέλεις να φτιάξεις help και εκτυπώσιμο Manual από το ίδιο source, πάρε ένα από τα εργαλεία που παράγουν και Help και PDF. Είναι λάθος όμως να προσπαθείς να χρησιμοποιήσεις το PDF για κάτι για το ποίο είναι ακατάλληλο.

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  07-12-2011, 15:10 68539 σε απάντηση της 68527

    Απ: RESX σε VB 2010 και PDF

    Θέλω να βάλω το PDF αρχέιο γιατί το έχω έτοιμο και δεν θέλω να κάτσω να το ξαναφτιάξω ως help file. Αυτό που στην ουσία ρωτούσα είναι, αν περιλάβω το pdf στο resx αρχείο του solution μου, πως μπορώ μετά να το καλέσω ; η προσωρινή λύση που έχω δώσει τώρα είναι με μια sub και με εντολή Process.Start("path") έχοντας τοποθετήσει το αρχείο το application path...
    Ελπίζω να το έκανα πιο κατανοητό τώρα...
    ευχαριστώ εκ των προτέρων

    Αντώνης Ε. Κόλλιας
  •  07-12-2011, 17:19 68543 σε απάντηση της 68539

    Απ: RESX σε VB 2010 και PDF

    Εγώ μια φορά που ήθελα να "κρύψω" κάτι, το είχα μέσα στα resources, έλεγχα εάν υπάρχει το αρχείο, και αναλόγως το δημιουργούσα εκεί που ήθελα, με το όνομα που ήθελα.
    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  07-12-2011, 17:44 68544 σε απάντηση της 68543

    Απ: RESX σε VB 2010 και PDF

    πως το έκανες access και πως το άνοιγες μέσω κώδικα ;

    Αντώνης Ε. Κόλλιας
  •  08-12-2011, 08:33 68553 σε απάντηση της 68544

    Απ: RESX σε VB 2010 και PDF

    Καταρχάς το αποθήκευα στα resources (Properties -> Resources -> Files). Από κει και πέρα είναι προσβάσιμο: Properties.Resources.MyPDFFile και είναι byte[].

    Εφόσον το πάρεις έτσι, τότε μπορείς να το γράψεις στο δίσκο κάπως έτσι:

                using (FileStream stream = new FileStream(FilePath, FileMode.Create))
                using (BinaryWriter writer = new BinaryWriter(stream))
                {
                    writer.Write(DataToWrite);
                    writer.Close();
                }
    'Οπου FilePath το μέρος που θέλεις να το γράψεις.

    Εγώ αυτό που έκανα είναι ότι έλεγχα πρώτα εάν υπάρχει με File.Exists(FilePath) και εάν δεν υπήρχε, τότε το δημιουργούσα ως άνω - αφού πρώτα έλεγχα και το περιεχόμενο αν ήθελα.

    Και τέλος, Process.Start όπως ανέφερες.

    Είναι λίγο πατέντα βέβαια, αλλά εφ'όσον έχεις το αρχείο έτοιμο, νομίζω ότι είναι καλή λύση - εξαρτάται φυσικά και από το μέγεθος του εκτελέσιμου. Μία καλή προσέγγιση είναι αυτά να τα έχεις σε ένα ξεχωριστό resource dll.

    Works for me...

    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  16-12-2011, 00:27 68639 σε απάντηση της 68553

    Απ: RESX σε VB 2010 και PDF

    OK, θα το δοκιμάσω και θα σου πω σύντομα....ευχαριστώ και πάλι

    Αντώνης Ε. Κόλλιας
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems