none
Dokument zu Bild konvertieren RRS feed

  • Allgemeine Diskussion

  • Hallo!

    Mein Programm analysiert Bilder, es sollen nun aber Dokumente analysiert werden.

    Die einzige Möglichkeit ist, die Dokumente vorher in Bilder umzuwandeln.

    Gibt es eine Library für C#, die das erledigen kann? Oder ein Programm, das im Hintergrund läuft und das erledigt?

    Sie sollte möglichst viele Dokumente (pdf, Word...) unterstützen.

    Sonntag, 19. April 2015 17:21

Alle Antworten

  • Hi,
    ein Programm, was das im Hintergrund erledigt, kann ein OfficeWebApps-Server sein. Er stellt das gerenderte Dokument in einen Cache und lieferte die Url dazu. Mit dieser Url kann man sich das Dokument holen. Das Ergebnis ist ein html-Strom.


    --
    Viele Grüsse
    Peter Fleischer (MVP, Partner)
    Meine Homepage mit Tipps und Tricks

    Montag, 20. April 2015 02:51
  • Das würde dann aber nur mit Internetverbindung funktionieren, oder?

    Gibt's da auch eine "Offline-Variante"?

    Montag, 20. April 2015 16:34
  • Hi,

    was genau willst Du denn analysieren? Mir erscheint es (so ohne weitere Informationen) nicht notwendig, für eine Dokumentanalyse eine Grafik aus dem Dokument zu erzeugen.

    Wenn es eine lokale Anwendung ist, könntest Du evtl. einen virtuellen Druckertreiber verwenden, der aus den Dokumenten eine Grafik erzeugt.

      http://www.imecominc.com/products-and-solutions/print-2-image/

    Ansonsten würden mir nicht viele Tools einfallen, welche als Universalkonverter dienen. Eine Möglichkeit wäre bspw.:

      http://groupdocs.com/dot-net/document-conversion-library/features

    Für einzelne Dokumentarten kann man gezielte Libraries einsetzen:

      http://stackoverflow.com/questions/12831742/convert-pdf-to-image-without-using-ghostscript-dll

      ...


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community



    Montag, 20. April 2015 16:49
    Moderator
  • OK, ich verwende jetzt LipPDF.

    Mein Code:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.IO;
    using libpdf;
    
    namespace PDF2IMG
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("start");
                using (FileStream file = File.OpenRead(@"C:\test\file.pdf")) // in file
                {
                    var bytes = new byte[file.Length];
                    file.Read(bytes, 0, bytes.Length);
                    using (var pdf = new LibPdf(bytes))
                    {
                        byte[] pngBytes = pdf.GetImage(0, ImageType.PNG); // image type
                        using (var outFile = File.Create(@"C:\test\file.png")) // out file
                        {
                            outFile.Write(pngBytes, 0, pngBytes.Length);
                        }
                    }
                }
                Console.WriteLine("finish");
            }
        }
    }
    

    Leider kommt folgende Fehlermeldung:

    System.IO.FileNotFoundException wurde nicht behandelt.
    Message: Ein Ausnahmefehler des Typs "System.IO.FileNotFoundException" ist in mscorlib.dll aufgetreten.
    Zusätzliche Informationen: Die Datei oder Assembly "libpdf.dll" oder eine Abhängigkeit davon wurde nicht gefunden. Das angegebene Modul wurde nicht gefunden.

    Die Datei habe ich aber als Verweis eingebunden.

    Im Download-Ordner waren noch folgende Binaries:

    jpeg62.dll

    poppler-qt4.dll

    QtCore4.dll

    QtGui4.dll

    Als ich versuchte, diese ebenfalls einzubinden erhielt ich folgende Fehlermeldung, dass das Assembly ungültig ist.

    Hat jemand Erfahrung mit LipPDF oder weiß jemand eine Alternative?

    Montag, 20. April 2015 17:13
  • Hi,

    liegt die Datei libpdf.dll auch im selben Ordner wie deine auszuführende exe Datei? (Oder im BIN Ordner, wenn es bspw. ASP.NET wäre)


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Montag, 20. April 2015 17:15
    Moderator
  • Ja
    Montag, 20. April 2015 17:33
  • Hi Känguru,

    warum nicht einfach das Dokument markieren, in den Zwischenspeicher legen, und z. Bsp. in Paint einfügen und abspeichern? Oder ist das zu trivial?

    Montag, 20. April 2015 20:03