Allowing user to print specific pages in C# WPF FlowDocument Application - c#

The box above is what is called when a print() method is initiated on a flowDocumentPageViewer of flowDocumentScrollViewer.
In My application, I want my users to be able to select specific page range to print but the options seems to be disabled in the printbox. is there a way I can activate this in code.
Help will be appreciated as this tied to to a project I am doing.

After alot of surfing the internet with no answer, I decided to check out my Library, my best pick was pro WPF 4.5 in c# 4th edition and I got the answer on page 941 chapter 29. Actually have read this before but I did not pick to detail and the author stressed that calling PrintDialog.UserPageRangeEnabled and others should be done before calling PrintDialog.ShowDialog()
I fixed this with that and viola, after months of stress, I got it right.
Although most of the printing features like PrintDialog.currentPageEnabled and PrintDialog.SelectedPagesEnabled are supported only in .NET 4.5 but I'm ok with with the PrintDialog.UserPageRangeEnabled because my app targets .NET 4 CF for I want it to be available to window xp users.
Below is the box now.

Please take a look at the following post which explains printing from a FlowDocument:
Printing a WPF FlowDocument
You can find out more from 'Mitesh Sureja's Blog':
Printing Flow Document using WPF PrintDialog

Related

Auto Form Fill for Windows Application

Detecting text fields are a common job in Form Fillers for browsers.
Is there a way to detect text fields and labels in an windows application using C++ or C#?
I want to write an Auto Form Filler for windows applications.
Taking abmv's answer further, there are several tools for this, some for .NET, too:
Windows Forms Spy
.NET Control Inspector
ManagedSpy in MSDN Magazine of April 2006
Hawkeye
Spy++ itself can be found on Microsoft's website, the source code seems to be not available, but a similar tool has source code.
Try a tool like SPY++ you can see that it can detect lables

Is WPF still relevant and can I use it in my C# windows application?

I have a process which I break into multiple processes and even when using threading it takes a very long time to complete.
I'd like to give the user an indication of the status of the execution in a cute way (for each process % complete). Maybe betting on the right horse will ease the pain :)
I found this project long ago: A Guided Tour of WPF (XAML)
I have two questions:
This article was written in 2007. Is there better way to achieve this graphic effect?
I have not understood yet, how the application is started, so I'd like to know if I can integrate such "window" in my window application?
Adam Robinson pointed out that the second question is not clear:
The application generates a window as in the picture below - I like to know if it possible to insert it in my "normal" windows application.
This article was written in 2007, is there better way to achieve this graphic effect?
WPF is the current "best" (or at least most feature-rich) way to develop a Windows Application for the desktop.
I have not understood yet, how the application is started, so I'd like to know if I can
integrate such "window" in my window application?
Make your application a WPF Application. This will automatically give you an application, Window class, and everything else you need to get started. Making a WPF application is just like any other application, except that you need to start the message pump, create the application, setup your startup window, etc. The "WPF Application" template in Visual Studio does all of that for you...
Until you understand what all is happening, I'd recommend starting with that, and customizing from there.
If you choose to stick with a win form for the main app, you can still host the desired window/control via an ElementHostControl. (hosts wpf inside winform).
Blessings,
Jeff

PrintingPermissionLevel, SafePrinting, and restrictions

There is a PrintingPermission attribute in the framework which takes a PrintingPermissionLevel enumeration with one of these values;
NoPrinting: Prevents access to printers. NoPrinting is a subset of SafePrinting.
SafePrinting: Provides printing only from a restricted dialog box. SafePrinting is a subset of DefaultPrinting.
DefaultPrinting: Provides printing programmatically to the default printer, along with safe printing through semirestricted dialog box. DefaultPrinting is a subset of AllPrinting.
AllPrinting: Provides full access to all printers.
The documentation is really sparse, and I wondered if anyone can tell me more about the SafePrinting option. What does the documentation mean when it says "Provides printing only from a restricted dialog box." I have no idea what this means. Can anyone shed any light?
This subject is touched in the MS certification 70-505: TS: Microsoft .NET Framework 3.5, Windows Forms Application Development and so I'm keen to find out more.
I don't see this actually implemented anywhere when peeking with Reflector. There is only one print dialog ever used, both by WF and WPF, the native Windows print dialog. It doesn't have a restricted version.
Printing support in .NET has been a bit cumbersome, it took a while before the System.Printing namespace became available. There might well have been early plans to implement a "better" print dialog, plans that didn't pan out.
I would guess that the exam question was more focused on testing understanding of CAS rather than very obscure details about the actual meaning of a specific CAS attribute.
According to the 70-505 MCTS training book:
AllPrinting provides unrestricted access to the printer
DefaultPrinting enables programmatic printing to the default printer and access to other printers through a printer dialog box.
SafePrinting allows printing only through a printer dialog box.
NoPrinting - pretty self-explanatory.
So, SafePrinting stops you printing programmatically without user interaction.
A restricted PrintDialog box refers to the various properties of the PrintDialog that can be set such as AllowSomePages,AllowSelection,AllowCurrentPage,PrintToFile etc.

Windows Explorer control for WPF?

Is there a way to have a Windows Explorer on WPF? The closes I can get is the Web Browser, but it's not really what I need.
Please assist.
Thanks
Check these out -
http://www.codeproject.com/KB/WPF/WPF_Explorer_Tree.aspx
and
http://gargmanoj.wordpress.com/2009/03/27/wpf-101-a-simple-windows-explorer-like-directory-browser/
JAM Software recently released a WPF edition of their ShellBrowser controls. They contain a wrapped Windows Explorer as well as custom built tree and list controls. Also included is a preview control similar to the one in the Windows Explorer on the right. Full disclosure: I am one of the developers of ShellBrowser.
Check out the explorer browser control in the Windows API Code Pack. Compatible with Vista and 7, I believe.
I have written a WinForms library that might help. It's not WPF but you can host it in a WPF application.
You can find the library at: http://gong-shell.sourceforge.net/
You can also check this out. It's fresh to the market and you'll need to pay, but it was designed to be identical in every way to the Windows Explorer Chrome:
http://www.teraque.com/products/explorer-chrome-suite/
The controls you get for free from WPF look like crap. They are only meant to get developers started.

How to display PDF or Word's DOC/DOCX inside WinForms window?

I'm wondering what's the best option to display a pdf/doc document inside form in my c# winforms app.
This control should only allow do display preview. Edtiting documents should be forbidden.
I'm looking for free solution.
The best option would be to attach a few separate *.dlls to solution but it's not a requirement.
Consider using the preview handlers for Vista, Windows 7.
I used the code provided by Brad Smith (with corrections from the comments).
http://www.brad-smith.info/blog/archives/79 - Hosting Preview Handlers in Windows Forms Applications
An often suggested solution is to use a webbrowser component inside the form that views the PDF:
MSDN
Another approach is to use an ActiveX Control included with the Adobe Acrobat Reader but therefore you need a license from Adobe.
You can use Preview Handlers. There is a WPF Article over at CodeProject, which should be dead easy to translate to WinForms if you need it.

Categories

Resources