[Gtk-sharp-list] viewers for different file types
claunia at claunia.com
Sat Sep 4 13:45:46 EDT 2010
El 04/09/2010, a las 18:31, Rampage escribió:
> Natalia Portillo ha scritto:
>> El 04/09/2010, a las 18:00, Adam Tauno Williams escribió:
>>> On Sat, 2010-09-04 at 17:47 +0200, Rampage wrote:
>>>> Hello everyone,
>>>> sorry but i'm pretty noob with GTK# so i'm here to ask you about this
>>>> issue i'm dealing with.
>>>> when i work with .NET on windows i have the capability of using
>>>> components from other applications to integrate with my apps, for
>>>> instance if i have to render a webpage i can use the internet explorer
>>>> component and plug it into my app, the same goes for PDF files word
>>>> files etc etc.
>>>> i was wondering:
>>>> is there something similar in gtk#?
>>> I think not. There seems to be a slowly forming standard of using D-Bus
>>> [Yay D-Bus!] to support application components. But it isn't really
>>> well-adopted or fully developed yet. :(
>> Anyway using any of that components will give you a coupe of headaches and missing libraries as soon as you move outisde certain environments.
>> If you use a Windows.Forms component you can be almost sure it uses a Windows-only library that requires to be installed by the user of the application (yeah, the Acrobat component for reading PDF is tempting, but requires Acrobat Reader to be deployed on each user's computer).
>> Using a GTK# component that is not purely C# will pretty much do the same. Using a GnomeArchiver component to visualize .ZIP contents (like Rampage stated originally) will require runtime checks for the libraries to be present, distributing it alongside your program, lose of portability (forget Win32 and Mac OS X), or silent crashes.
>> You can however, create you own control using a purely C# assembly (in your example, check SharpZip or Ioniz.Zip, I prefer the later) that will be more easily installable, dependable and portable.
>> Natalia Portillo
>> Gtk-sharp-list maillist - Gtk-sharp-list at lists.ximian.com
> thanks for the reply.
> Consider that i'm dealing alot with byte arrays and streams more then
> files themselves with my application.
> the bytearrays i deal with are actually files but not in the form of
> files on disc.
> so i need tomsething that allow me to deal with streams and bytearrays.
> as long as a library has the ability to load these kind of data it's ok
> for me.
> i don't know how challenging it may be to build a UI that displays and
> extracts the content of a zip/tgz/bz2 file, but as long as libraries are
> available it's just a metter of time.
> the problem is that i really don't know how to deal with certain
> filetypes, like PDF files or audio/video files.
> are there classes/libraries that allow me to deal with these type of
> consider also that i'm not going to write/create these type of data, but
> only reading/viewing/playing.
I have not checked SharpZip, but Ionic.Zip supports streams. I use it to create ZIP64 encrypted files on memory and send them to a web server without never writing a file.
It also supports Gzip, dunno about Bzip2.
The LZMA SDK of 7-Zip works also on streams.
I have not checked for audio, video or PDF, but I'm pretty sure that Tao.Framework (for audio and video using ffmpeg library, not pure C# but fully multiplatform) uses streams, and I know there is a PDF viewer and creator C# library, pure C#, no external dependencies.
More information about the Gtk-sharp-list