I am looking for a way to display TIF documents on a web page. It basically needs to render a Multi-page TIF in some form of container on a web page.
Do I need a control or is there a simple way to build something like this? Is there any free stuff that we could simply implement?
I have looked at the Telerik reporting product which apparently contains a Tif viewer. I haven't looked into the licensing for this though. (If I only need the TIF Viewer, do I need to purchase the entire reporting solution?
Our biggest issue at the moment (like always) is that we have a very tight deadline with very little available resource. This product will be installed at a client so ActiveX controls that request user permission to install are less than ideal.
Any suggestions and/or comments would be welcome.
Thanks
If you want to try and roll your own (this would be a lot of work), you can use the System.Drawing namespace to convert TIF images to a browser-supported format, like PNG or JPG, or a third party library like AbcPdf to go to PDF as Lazarus suggested. The problem here is that you would have to create and code-behind a toolset for magnification, cropping, and multi-page support, along with whatever else you would want, which could be quite a bit of coding (unless you went to PDF and relied on Adobe Reader). Also, the server-side conversion can be prohibitive for speed if you're dealing with large TIF files or with formats that aren't supported.
As far as vendor solutions are concerned, I don't know of any good free viewing plugins off-hand. R Ubben is right; Snowbound's viewer is nice, but if I recall, the AJAX version requires it's own website that you pass the image to, which then gets rendered to the client, which may bring up some security issues (and leaves a bad taste in my mouth anyway). Atalasoft has an excellent AJAX image viewer and a very powerful imaging SDK, but it does cost a bit. My current company has settled on an ActiveX plugin from Pegasus Imaging (recently merged with Accusoft) called Prizm Viewer. The viewer itself is quite powerful, can handle many image formats, and is scriptable. It does have drawbacks (beyond being an ActiveX control). We've had some trouble with our desktop deployments as the default install will only push for the current user as opposed to the local machine, but we've fixed that with a post-install registry hack.
I would say that, if you have the cash and want a robust imaging solution, go with Atalasoft. Otherwise, Pegasus is fairly cheap and works just fine, unless you have severe aversions to ActiveX. There are lots of other options out there, it's just a matter of how much money you have and how much coding you want to do.
Use a library server-side to convert the TIF to a PDF (assuming that it's a common plug-in that most people have) which will eliminate the need to install another, convert each page of the TIF into a GIF or JPG and present those, again fully supported by browsers eliminating the need for an additional plug-in.
You could probably do this conversion on-the-fly and then cache the output to reduce subsequent loading times.
There's a good, free viewer that has an ActiveX version for IE and a Mozilla plugin for Firefox. Alternatiff. It's free but requires registration that's fairly painless.
# R Ubben
Thanks for mentioning our AJAX application! There is a live version of the ajax document viewing application, VirtualViewer, available at http://ajaxdocumentviewers.com and a free trial download. VirtualViewer may be overkill for simply viewing TIFF images on the web - depending on the size of your organization - so we also provide the RasterMaster SDK so you can build your own file conversion and viewing apps.
Doug
Snowbound Software has a pretty good image viewer. It does not use ActiveX. Displaying tiffs is not difficult, but sometimes you need something quick.
I've used Adeptol's AJAX Document viewer to do the same thing. Works great and easy to implement.
i'm just looking for the same..
found this:
http://www.neodynamic.com/demo-faq/imagedraw-aspnet/imagedraw-aspnet-multipage-tiff-viewer-sample.aspx
hope it can help, otherwise if you find something better, please let me know by inbox :)
Related
I started working in a new project with a big challenge. I am working in a medical project and in that I have to read DICOM images and process the image with its properties. I gathered some basic knowledge on DICOM and PACS. As I worked on WPF around 2 years of my career so I choose to do this project using C# and WPF. I googled a lot and even I went through many articles in SO and also in codeproject, every where I found they used some libraries/ third party tools like:
gdcm , LEADTOOLS , ClearCanvas
Can any body suggest me any alternate way of doing DICOM Image processing without using any third party/library or is it impossible without using libraries/third party ?
I have gone through the link for choose a best suitable library for DICOM image processing, but looking for an alternate way to solving this.Please feel free to suggest which is the best and more flexible library from the above list only if there is not any alternate way to achieve the task.
Any idea, link, suggestion or any initiation will be appreciated, thanks in advance.
In one way or another the third-party libraries are also created from scratch, so of course it is possible to create a DICOM image processing solution without relying on any third-party libraries. Using whole or parts of an open-source library will most certainly take you to a functional solution in considerably shorter time, though.
One third-party library that is mentioned in the link you are referring to is mdcm. This is a relatively light-weight open-source library with support for WPF (and Silverlight). If you want to, I am pretty sure you should be able to extract those parts from this library that are relevant to your project.
Another light-weight library is Evil DICOM. I am not completely sure that this library has very much image processing functionality, though.
UPDATE MAY 31: SUMMARY OF DISCUSSION
mdcm is an open-source library under the LGPL license. An example of image rendering usage is given in the SL.DicomToXml (Silverlight) application, equally applicable to WPF applications. In the code-behind of the MainPage, fileNameButton_Click method, there is code to demonstrate DICOM image file loading and rendering.
There is currently no up-to-date binary distribution of mdcm available, but it should be fairly easy to build required libraries from the solution in the mdcm repository. Source code can either be obtained using a Git client or by downloading the latest revision by clicking on the ZIP button on the repository home page.
If you need to get more acquainted with DICOM image processing details, it is probably good to start by having a look at the DICOM Standard itself, and also to parse a DICOM image file to get the feeling for what information it contains. A good starting point is the official DICOM homepage. A quick introduction with links to software is given here. There is also a general, more lengthy tutorial available here.
I'm currently programming an application in Silverlight which need to have a control to display a Word 2003 document . I can also convert the document before the webservice sends it but the 2003 format seems to be quite harsh to manipulate. I know there's some softwares which can do it but you have to purchase them. Do you have any clue to help me to progress ?
What is the level of fidelity you want to achieve?
I am quite sure that the "easiest" way of doing this would be to convert the document to XPS serverside (with the XPS printer perhaps) then manipulating it to create a Silverlight compatible content (a XAP)
Why this? Because, for instance:
Silverlight does not support flow documents, therefore you don't want to have to perform the layout on the client.
Silverlight requires fonts to be included in the same XAP that is using it (even in the same assembly), therefore you need to generate an assembly with the font embedded in it serverside.
XPS is XAML in a zip (therefore a lot better to manage than Word2003 doc), but it isn't Silverlight Xaml, you need to convert it to Silverlight before being able to read it on your Silverlight App (using XSLT? beware, there are some calculations required to convert viewports into scale/translate transforms). The good news is that any layout problems were taken care of in the XPS generation process.
I had an intern design a prototype of XPS reader for Silverlight a year ago. It worked, but the rendering wasn't perfect (I could have been however, with more work)
In a word: It's possible, not really complicated, but requires lot of work and practice in a few domains (from XSLT to assembly generation, and knowledge of the XPS norms). But I am not aware of any free solutions available.
Therefore, I would recommand using an available (and working) solution, rather than taking the route of a risky development.
I'm looking for an asp.NET control that will allow for viewing and printing of a pdf and TIFF within a web form. I'm willing to use more than 1 control if needed (1 control for pdf, 1 for Tiff, show and hide based on file extension), but I have not been able to find a good Tiff viewer.
Files are stored on our LAN in a shared folder, and this application is an intranet site.
Open source / free licensing preferred, but I'm willing to look at paid options as well.
http://www.alternatiff.com/ is one of the viewers that I've seen used for this type of viewing of tiffs.
You can get a free licence of ABCPDF (provided you link back to their site) which will do the conversion from TIFF to PDF for you as per #Chris Lively 's suggestion.
It'll also do conversion from PDF to TIFF if you decide to do things backwards.
It makes sense to present the content in a common format. If you wanted to you can embed the PDF in the browser to create the 'seamless' experience you're looking for using something like PDFObject.
As #BenCr says though, PDF is a really common format and the tools already exist to open and work with them, so introducing new ways to perform existing tasks could actually end up complicating matters unnecessarily.
I'm in total agreement with #BenCr on this.
Viewing PDFs is an extremely common thing to do. This isn't a "technical" issue by any stretch.
It sounds like you have some type of faxing solution in place that is creating these documents. Most likely multi-page TIFF and PDFs.
If this is the case you might want to just convert the TIFFs to PDFs to begin with and run everything through Adobe's pdf reader. Every online fax solution does this.
You could try http://issuu.com/ and they appear to have a API too if you want to go that deep.
We used the the Seadragon control to do this. I think it was an overkill and we should have just rolled our own -- would have been cheaper than integrating it. TIFFs and PDFs are converted to PNG on the server side. I don't think you can do better than that, especially with PDFs (assuming you don't want to use Acrobat Reader to display them). Convert PDFs to PNG using Xpdf/Poppler.
How about using Google Docs Viewer?
EDIT: Probably not working, since the viewer has to read the document from your URL; when it's on the Intranet, this won't work.
If you can mess about with mime types -- mainly by making the .tiff files expose an application/pdf mimetype -- you should be able to get acrobat to open TIFF files directly by effectively fooling the browser to open TIFF files with acrobat. Then all you need is a trusty old iframe to get you familiar UI with print buttons.
We are developing a C# Application that supports printing multiple views and we would like to add printing to PDF. This application has several 3rd party controls that handle the printing on their own so adding something like SharpPDf will not work for us we don't believe.
Either we need a 3rd party component that takes a Print document as source and produces a PDF from that, or we need a good 3rd party print driver.
I was surprised that Adobe does not offer a Distributable version of the PDF printer they bundle with Acrobat as that would be ideal. Anyone have recommendations as to what is the best path for us on this?
Thanks in Advance,
Jeff
UPDATE: So after all the suggestions and a ton of research here is what I ended up doing. We are buying a license to Novapdf sdk for our product (http://www.novapdf.com/en/pdf-sdk.html). I looked at over 15 different products and we went with nova because of the ease of which we could implement this in our code and the cost was right ($899 for novaPDF SDK Single Application v7.) The code could not have been simpler and you can start developing before you actually have the license. Thanks again to everyone for their suggestions.
as a PDF printer, you can use PDF Creator, that it's free:
http://www.pdfcreator.com/
However, i'm using SharpPDF and works fine.
The best free tool I found is ITextSharp. It's very easy to use, and has a lot of examples online.
You can find it information at http://itextsharp.com/
we are using Billzip http://www.bullzip.com/products/pdf/info.php. There is also a COM interface to define how you want the output file handled. Here is the COM object info http://www.biopdf.com/guide/.
I am planning to write an app that can open and display PDF documents, and perform OCR on vector graphic elements within the PDFs. The user must be able to select regions of the document and I need to draw real-time annotations on the document. I don't need to alter or save the document itself.
I have plenty of experience with C# and WPF; I have written a similar application already that does the above on XPS/XAML documents rather than PDF. However that app only runs on Windows and PDF documents must be converted to XPS first.
I have done quite a bit of research and there are many, many options available, none of which seem an obvious choice. There are many libraries that can open PDFs or create PDFs, but most don't seem to give you access to individual vector graphic elements in a format that lets you draw/manipulate them on the screen (similar to what I could do with WPF graphic elements extracted from XPS documents).
I am familiar with .Net and C# (including .Net 2 GDI+ graphics) and I am very keen to stick to what I know. I am also using EmguCV for image recognition which can be compiled in Mono or .Net. As such I am looking at Silverlight (running standalone) or Mono options, both of which should run on PC and Mac.
Performance (for both graphics and number crunching) is a strong consideration, though I am just as interested in getting this up and running quickly.
Does anyone have any experience with opening PDFs, extracting vector graphic elements (perhaps as SVG) and rendering them in a Mono app? Can individual elements be rendered to bitmap?
Alternatively, does anyone have experience with opening PDFs in Silverlight and converting them to XPS or XAML at runtime? I know that WPF and Silverlight graphics libraries are not 1:1, but I'm not sure how this affects XPS contents (generally composed of Canvas, Glyphs and StreamGeometry objects).
Thank you for any advice, tips or links you have to share.
look at this
http://silverpdf.codeplex.com/
it's client side pdf reading library. actually right now it can only read files, but you could play with it and make your own "display" functionality.
You might want to examine the internals of your PDFs so you understand what they actually contain better - you might be very surprised! For example, text can often be scanned pages or images and vecotr graphics do not exist as neat little packages. We wrote a whole load of general articles about what is inside a PDF and analysis tools at http://www.jpedal.org/PDFblog which are not specific to any tool or language.