displaying a pdf on a windows form? - vb.net

in vb.net is it possible to display a pdf file on a form?

If you're looking to display a PDF without needing Acrobat Reader installed on a client machine, take a look at this:
PDF Viewer Control Without Acrobat Reader Installed
I haven't tried it yet but probably will.

A quick hack for this would be to use a WebBrowser control (assuming the client has Adobe Reader installed) and navigate it to the PDF file you want to display.

yes, but you will end up using a COM+

Related

Force a webbrowser to display a PDF file only on Adobe Acrobat Reader

I create a PDF with iTextsharp and then I show the preview of the PDF inside a webbrowser control. From the preview the user can SAVE or PRINT using the defaults Adobe Reader's buttons
Working on Windows x64 bits with Adobe Reader as the default PDF viewer everything works fine.
The same program on a Windows x64 bits but with Foxit Reader as the default PDF open the file on Foxit Reader on full application window, outside my program.
I need to manage that.
My code is like
Dim PathToPDF As String
PathToPDF = DirectoryOfMyApp & "\ReportPreview.pdf"
ReportPreviewWebBrowser.Navigate(PathToPDF)
Where DirectoryOfMyApp just gets the C: or D: letter of the hard disk.
I read this link
How to start an Adobe Reader or Acrobat from VB.NET?
but a line like
ReportPreviewWebBrowser.Navigate("acrobat", PathToPDF )
didn´t work and I think the webbrowser control don´t have the option to choose the PDF viewer
https://msdn.microsoft.com/es-es/library/system.windows.forms.webbrowser(v=vs.110).aspx
Is there a way to set the webbrowser to use Adobe Acrobat Reader only or to force any other PDF viewer to show the PDF inside the webbrowser control?
I agree with Zaggler on his comments on this. You are making assumptions at a certain point on software that is installed on an end user's computer. Unless you are going to make the application's PDF viewer be part of a dependency installation or cooked into .NET you cannot guarantee they have that program to use. Nor can you guarantee it's installed location.
However there is a cheap hack for Windows based processes you can do in VB.NET. You can use the ole System.Diagnostics.Process()
Sub Main()
Dim nProcess = New System.Diagnostics.Process()
nProcess.Start($"D:\PdfFile.pdf")
End Sub
In this example I did a quick file location, you can try to ensure it is a valid location that will not change or is in your app's running process folder. This is really low tech as far as development goes, but it is basically saying: "Run me a process, any process, at this location. I don't care what it is, use the Windows defaults to determine what to do with it."
So when I run this on my Windows 10 Dev box it loads up Edge to display it, at home it would fire up Adobe Viewer. It is just opening the file essentially with the OS's choice of what is using that file extension. Not glamorous or very good for hardened code but it works when you want something quick to happen.
No, you can't do this.
You can't even guarantee that Adobe Reader is installed at all.
Reader might not even exist on the machine. It's not built into Windows, and not everyone uses it. Even if it is, FoxIt isn't the only alternative. A big one is that Chrome includes it's own PDF viewer.

attachment is not working in adobe reader

I have a fillable pdf with few text boxes in it and a save button. When the user fills the form and clicks the save button using Acrobat Pro I am able to save the data as an attachment in pdf, But the problem is When the user opens the pdf using Adobe Reader and try to do the same thing as above I am getting following error.
I have been searching for a week but no luck. Is there any way to make createDataObject() function work in Adobe Reader? or Is there any other way we can embed data into pdf?
Note: I am using Acrobat Javascript for this functionality. And I am using Adobe Reader version 11 and Acrobat pro version 11 and my OS is Windows.
What I have read so far is that getting file attachments working in Adobe Reader requires certain security settings to be enabled. Check out this Adobe forum post. According to it, attaching files from within Adobe Reader is only possible if you have Adobe Reader Extensions and allow users with Reader to add attachments.
I've been trying to get attachments working in Adobe Reader with Adobe LiveCycle and Adobe Pro myself, but also no luck so far. If anyone can give any workarounds, I'd be very interested in them myself.
Our workaround is to put a JS file in
/c/Program Files (x86)/Adobe/Acrobat DC/Acrobat/Javascripts/
or where ever.
This file has things like
app.PermittedFunction = function(some parameters here)
{
app.beginPriv();
Do fancy stuff here
app.endPriv();
}
app.trustedFunction(app.PermittedFunction)
Then we set button or menu Javascript actions as just
app.PermittedFunction(Generally pass in at least this so the file is clear)
And that should get you around the security errors.

Disable Printing in a PDF Viewer ActiveX control?

I'm using the Adobe Acrobat PDF Viewer ActiveX (AxAcroPDFLib.AxAcroPDF) control in one of my forms to display Controlled Document PDFs and my customer would like end users to not be able to print these documents. Is there anyway to disable printing through this control?
The PDF format supports permissions and "allow printing" is one of the permissions. If you can control the PDF generation of these controlled PDFs your best bet is to disable the allow print permission for users. You can also even run existing PDFs through a conversion process to add the necessary permissions with iText, ghostscript or something similar.
Besides, even if you are able to to disable the print button on the ActiveX viewer, if the user is clever enough to realize it is merely a PDF, they could just download the PDF and print it normally.
There's a new PDF software that does this by default. You would have to save the document as .wwf rather than .pdf. If the document is already in PDF format you can re-save it in WWF format.
It's provided by the World Wildlife Foundation in an effort to reduce paper use. The end user does not need to have the software installed on their computer for it to work. You can download the software for both MAC or PC from the link below. Hope this helps!
http://www.saveaswwf.com/en/

In search of a lightweight pdf viewer

I am looking for a lightweight pdf viewer ( commercial / free) for my windows application.
I presently display the pdf documents on a webbrowser with Adobe Reader Plug-ins.
Background :
The problem i am having with Adobe Reader is the Loading time. To display a pdf document for the very first time, Adobe Reader nearly takes 15 seconds !! .The application when deployed on customer locations (usually run on Windows Embedded OS) the pdf viewing time is still worse, sometimes takes more than a minute.
Hence i need to find an alternative for Adobe Reader.
My simple requirements are :
Lightweight - viewer should initialise itself and load the pdf as
fast as possible.
SVG support.
If anyone has any idea regarding such a tool. Kindly let me know
Regards
Srivatsa
Try : Foxit PDF SDK
Try SumatraPDF (Download full kit for MOZ plugin npPDFViewer.dll sorry there is NO IE.OCX)
For a minimal install use with the portable executable in same directory and you can call via DDE or command line
I think best light weight option for Windows is MuPDF for those who would rather not use any plugin in the Chrome.
http://mupdf.com/

difference between microsoft report viewer and adobe pdf reader tools?

i would like to display a pdf on my winform and am thinking of using of those tools in my vb.net application. does anyone know the difference between the two?
Microsoft Report Viewer reads report definition files and displays the report. Adobe's PDF reader displays PDF files.
Report definition files != PDF files, so you would need to make sure that you use the right tool for the right job. If you need to read PDFs, use a PDF reader.
As for consuming a PDF on a WinForm, you could host a WebBrowser control and point to the PDF. Alternately, there are several WinForm control manufacturers that read and display a PDF file (though I've not used any of them so would not be able to recommend one over another). Examples would be:
http://www.tallcomponents.com/
http://www.skysof.com/