PDF direkt aus Ressourcen laden ohne zu extrahieren

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von n30phyt3.

    PDF direkt aus Ressourcen laden ohne zu extrahieren

    Hi alle zusammen :)

    ich habe folgenden code:

    Quellcode

    1. Private Sub Llbl2_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms. _
    2. LinkLabelLinkClickedEventArgs) Handles Llbl2.LinkClicked
    3. Dim pdf_double_pump As Object = My.Resources.opt_double_pump
    4. File.WriteAllBytes("opt_double_pump.pdf", pdf_double_pump)
    5. Diagnostics.Process.Start("opt_double_pump.pdf")



    wie kann ich die PDF laden ohne sie für den user auf dem laufwerk sichtbar zu machen?

    Danke schon mal für eure hilfe ;)

    MfG n30phyt3 ^^

    n30phyt3 schrieb:

    wie kann ich die PDF laden ohne sie für den user auf dem laufwerk sichtbar zu machen?

    Solange Du Process.Start verwendest um das PDF File mit einem voreingestellten PDF Reader (Adobe, Browser, Foxit) zu öffnen behaupte ich mal: garnicht.

    Du gibst bei process.Start ja einen Pfad des Filesystems mit, also muss Deine PDF ja irgendwo auf einer Deiner Partitionen liegen. Auch ein virtuelles Laufwerk oder eine Ramdisk wären ja im Explorer sichtbar. Eine Möglichkeit wäre das Setzen des System/Hidden Attributs, hilft aber auch nicht wenn der Benutzer die Explorer Einstellungen so gesetzt hat, dass diese Files sichtbar sind.

    Um so etwas zu verwirklichen, brauchtest Du eine PDF Library, dessen Reader Streams akzeptiert, um damit Dein PDF direkt aus dem Memory Stream lesen zu lassen.

    Allerdings kann man sich immer fragen was das Verstecken überhaupt bringt, da ja die meisten Reader ein File Save Funktion mitbringen. Ich würde an Deiner Stelle Deine Resource File in den TEMP Ordner entpacken und gut ist.

    n30phyt3 schrieb:

    wie geht das mit TEMP? HIDDEN muss nicht sein nur, dass die PDF nach dem Schließen wech ist

    Tja, nach dem Schliessen von WAS ? :wacko:

    Du weisst ja theoretisch garnicht mit welchem Programm Dein PDF geöffnet wurde.

    Denke Dir bleibt nichts anderes übrig als in regelmässigen Abständen zu prüfen, ob Dein aus den Ressourcen erzeugtes temporäres File noch verwendet wird oder gelöscht werden kann.
    wie kann ich die PDF nach WindowsStandard-TEMP kopieren und von da öffnen? ohne sie danach zu löschen?


    so gehts nicht:

    Quellcode

    1. Dim pdf_double_pump As Object = My.Resources.opt_double_pump
    2. Dim TEMP As String = My.Computer.FileSystem.SpecialDirectories.Temp
    3. File.WriteAllBytes(TEMP & "\opt_double_pump", pdf_double_pump)
    4. Diagnostics.Process.Start(TEMP \ "pdf_double_pump.pdf")

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „n30phyt3“ ()