Laden...

PDF Dateien aus MemoryStream anzeigen

Erstellt von STF-DIR vor 6 Jahren Letzter Beitrag vor 6 Jahren 4.292 Views
S
STF-DIR Themenstarter:in
368 Beiträge seit 2006
vor 6 Jahren
PDF Dateien aus MemoryStream anzeigen

Hallo,

nach langer Zeit muss ich mal wieder was programmieren. Ist eigentlich nichts besonderes und auch nur für mich wird also nicht vertrieben.

Ziel des Projekts ist es PDF Dateien in einem Winforms Projekt auf einem TAB Panel darzustellen. Dabei stehen die verschiedenen PDF Dateien zur Verfügung und müssen aber per MemoryStream geladen werden, da es sein kann, das mehrere PDF Dateien zusammengeführt und als eine Datei mit mehreren Seiten dargestellt werden müssen. ( Anflugkarten für Flughäfen )

Leider habe ich kein Freeware Control für die Darstellung PDF Memorystreams gefunden. iTextCsharp hat kein anscheinend kein Control und mit dem Browser Control kann man anscheinend keine PDF's aus einem MemoryStream darstellen weil man den MIME Typ nicht einstellen kann.

Dumme Sache das, aber ich komm da einfach nicht weiter.
Ich möchte aber auch kein Geld für ein Control ausgeben, da es ja nur ein kleines privates Projekt ist.

Probiert habe ich auch Syncfusionessentialwindowsforms zum Beispiel, das geht zwar , kann aber als Freeware nicht mehr als 10 Seiten darstellen, was nicht ausreicht. ( können schon mal recht viele Anflugkarten sein )

Hat vielleicht jemand eine Idee wie ich das machen kann?

Danke
Matthias

3.170 Beiträge seit 2006
vor 6 Jahren

Hallo,

vielleicht hilft Dir das weiter: [gelöst] PDF vom Stream im WebBrowser-Control anzeigen?
Eine andere Lösung wüsste ich jetzt nicht...

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

M
184 Beiträge seit 2012
vor 6 Jahren

Notlösung: Einen eigenen HttpListener in der Anwendung hosten und das WebBrowser-Control verwenden...?

16.806 Beiträge seit 2008
vor 6 Jahren

Notlösung: Einen eigenen HttpListener in der Anwendung hosten

.. bitte aber sowas nicht auf "localhost:80" laufen lassen (oft genug gesehen!!!).

S
STF-DIR Themenstarter:in
368 Beiträge seit 2006
vor 6 Jahren

Hallo,

danke für die schnellen Antworten.

Das mit dem temporären speichern der PDF's wollte ich eigentlich vermeiden, darum der MemoryStream.

Den Beitrag hier :
MoonPdf - PDF Viewer Control und PDF Viewer

hatte ich gefunden, bekomme aber das Control einfach nicht auf die Form, bzw. in die Sidebar. Wenn ich die dll laden will kommt immer eine Fehlermeldung das die dll kein Control enthalte.
Keine Ahnung was da schief geht.

HttpListener ?
Wird ich mir anschauen, keine Ahnung wie das gehen soll?

Danke erst mal
Mattias

S
STF-DIR Themenstarter:in
368 Beiträge seit 2006
vor 6 Jahren

...irgend wie verstehe ich nicht, warum es keine Freeware Componente zum anzeigen von pdf's gibt?
sonst gibt es doch für alles mögliche etwas....

5.657 Beiträge seit 2006
vor 6 Jahren

Hi STF-DIR,

...irgend wie verstehe ich nicht, warum es keine Freeware Componente zum anzeigen von pdf's gibt?
sonst gibt es doch für alles mögliche etwas....

Das erste Suchergebnis bei Google ist: Read a stored PDF from memory stream

There is a C# nuget package called PdfiumViewer which gives a C# wrapper around PDFium and allows PDFs to be displayed and printed.

It works directly with Streams so doesn't require any data to be written to disk

Hast du das schonmal ausprobiert?

Weeks of programming can save you hours of planning

S
STF-DIR Themenstarter:in
368 Beiträge seit 2006
vor 6 Jahren

... 😃 gerade eben 😃

Bin schon am probieren.

Danke nochmal !!
Matthias

S
STF-DIR Themenstarter:in
368 Beiträge seit 2006
vor 6 Jahren

...also irgendwie steh ich damit auf dem schlauch.

Ich hab mir hier :
https://github.com/pvginkel/PdfiumViewer/blob/master/Libraries/Pdfium/x86/pdfium.dll

die dll herunter geladen und versucht ein Control in die Sidebar zu bekommen.
Funktioniert leider nicht, da kommt immer ne Fehlermeldung.

Dann hab ich mir das komplette Packet heruntergeladen
https://github.com/pvginkel/PdfiumViewer

und sowohl die Demo als auch Test Version darin ins Sharpdevelop geladen.
Funktionieren aber beide nicht.

Was mach ich denn da nur falsch..?

Matthias

D
985 Beiträge seit 2014
vor 6 Jahren

Warum nicht per NuGet?

S
STF-DIR Themenstarter:in
368 Beiträge seit 2006
vor 6 Jahren

...weil hier:
https://github.com/pvginkel/PdfiumViewer/tree/master/Libraries/Pdfium

steht, das es mit denen funktionieren sollte:

These are the compiled Pdfium libraries. The default libraries used, the ones that are here in the x86 and x64 folders, are the ones that include V8. These are not compatible with Windows XP.

If, alternatively, you want smaller Pdfium DLL's, or require Windows XP support, you can alternatively use the Without V8 versions. For Windows XP, you also need to distribute updated versions of the dbghelp.dll DLL's, which are also located in the appropriate folders. Please note that these are not part of the standard distribution and are not automatically loaded or copied into your target folder. You have to add these yourself.

bei diesem NuGet steige ich nich durch

Matthias

D
985 Beiträge seit 2014
vor 6 Jahren

FYI

Using the library

To use the library, you must first add a reference to the NuGet package.

S
STF-DIR Themenstarter:in
368 Beiträge seit 2006
vor 6 Jahren

das ist es ja , wo/wie soll ich das machen?
Ich benutze Sharpdevelop, nict Visual Studio und eine NuGet Package hab ich auch nicht.

Es muss doch irgendwo eine fertig kompilierte PDFium dll geben, aus der man das Control zur Sidebar hinzufügen kann.

D
985 Beiträge seit 2014
vor 6 Jahren

omg
google => sharpdevelop nuget

  1. Treffer: NuGet Support in SharpDevelop

Vorlesen mache ich aber nicht ...

BTW Laut deinem Profil verwendest du Visual Studio 2008

463 Beiträge seit 2009
vor 6 Jahren

...irgend wie verstehe ich nicht, warum es keine Freeware Componente zum anzeigen von pdf's gibt?
sonst gibt es doch für alles mögliche etwas....

Zum einem ist deine Aussage falsch, da es mehrere gibt und zum anderen, was hält dich ab, dich in das Thema einzuarbeiten und eine zur Verfügung zu stellen?
Ich finde die Freibiermentalität und Erwartungshaltung mancher hier schon grenzwertig..

S
STF-DIR Themenstarter:in
368 Beiträge seit 2006
vor 6 Jahren

Zum einem ist deine Aussage falsch

na dann zeig doch mal...

S
STF-DIR Themenstarter:in
368 Beiträge seit 2006
vor 6 Jahren

ich glaube das waren bessere Suchwörter als meine nach "free pdf library c#"

Also sorry und danke noch mal

Matthas

Ps.: Ich dachte das erste Ergebnis ist schon das richtige , aber es hat wieder keine eigene Componente die man in die Sidebar laden kann.

Also doch erst mal weitersuchen, denn das waren ja die Anforderungen an die Suche.
Anscheinend sind deine Suchwörter somit doch nicht besser.

F
10.010 Beiträge seit 2004
vor 6 Jahren

Und wieso meinst du das du eine Componente in der Sidebar benötigst?

S
STF-DIR Themenstarter:in
368 Beiträge seit 2006
vor 6 Jahren

Benutzerfreundlich und es wundert mich halt, das es für(fast) alles ne Componente gibt, nur für PDF's anscheinend nicht, jedenfalls nicht als Freeware

16.806 Beiträge seit 2008
vor 6 Jahren

Ja, tatsächlich muss man manche Dinge als Entwickler dann doch selbst programmieren.

S
STF-DIR Themenstarter:in
368 Beiträge seit 2006
vor 6 Jahren

Ich glaube das Thema kann geschlossen werden.
Ich hatte nur eine einfache Frage und jetzt ist es eine riesen Grundsatzdiskussion geworden.
Das hilft mir nicht weiter.

Matthias

F
10.010 Beiträge seit 2004
vor 6 Jahren

Naja, weiterhelfen könnte es dir wenn du etwas lernst.

Das kann evtl auch sein das du verstehst das componenten etwas sind das in einem Designer manchmal Sinn machen, du aber nicht immer einen Designer benötigst um etwas zu schreiben.

Schon das du jetzt mal gesehen hast das es Nuget gibt, kann dir eine neue Welt öffnen, wenn du dann noch nachvollziehen kannst das das benutzen solcher Komponenten dann auch nur 2 Zeilen mehr sind gegenüber dem D&D aus der Sidebar, dann ist das doch auch etwas.

Ganz abgesehen davon, ist der Designer in 90% der Fälle eh nur Zeitverschwendung und man kann vieles im code deutlich schneller machen ( erst recht bei WPF ).