Skip to Content

Landscape printing is not working normally in .NET Framework version 4.6 or higher?

Sep 15, 2017 at 10:08 AM


avatar image


I have this issue with landscape printing. When a report has landscape orientation it is printed in portrait mode, and a part of the content is not visible in the printed result.
I made a lot of environmental tests and I discovered this issue occurred when on the machine is installed .NET Framework version 4.6 or higher in combination with any Crystal Reports runtime version.

1. Wrong print result

2. Expected print result

This issue was in the past and was resolved in Crystal Reports version 13_0_17 for .NET Framework version 4.5.2
The clients use Windows 10 and .NET Framework downgrade is not a solution for me.

I hope that someone can help me with this issue.


result.jpg (23.8 kB)
10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

2 Answers

Don Williams
Sep 18, 2017 at 04:31 PM

Try using SP 21, requires a bunch of changes so read the info on the download wiki:

Does the printer have an updated driver available that's supported in 4.6?


Show 5 Share
10 |10000 characters needed characters left characters exceeded

Hi Don,

I made tests with SP 21 and I followed all the instructions from
I tried with several printers and virtual printers and unfortunately the result is the same.

I will appreciate if someone can confirm that having this problem.
I want to highlight the fact that landscape printing is working normally with .NET Framework version lower than 4.6 installed, but this is not a solution for me.

Thanks for the support,


What printer are you using?


Hi Don,

I made tests on this printers and virtual printers:
- Brother MFC-DN8880
- Brother HL-11
- HP Color LaserJet 3600dn
- HP LaserJet P1102

Virtual Printers
- doPDF 8
- Foxit Reader PDF Printer
- PDF Creator
- PDFLite

The issue is reproduced on all above printers.
I appreciate the support,


So are you saying you don't have any framework other than 4.6 or higher?

Show me a picture of this folder:




As far as I know, .NET Framework 4.6 or higher contain all previous versions.

The tests were made in those steps, on a Windows 7 machine were I had the possibility to install custom .NET Framework version:
1. Installed .NET Framework 4.0 - Landscape printing OK
2. Upgraded to .NET Framework 4.5 and restarted computer - Landscape printing OK
3. Upgraded to .NET Framework 4.5.1 and restarted computer - Landscape printing OK
4. Upgraded to .NET Framework 4.5.2 and restarted computer - Landscape printing OK
5. Upgraded to .NET Framework 4.6 and restarted computer - Landscape printing WRONG
6. Upgraded to .NET Framework 4.6.1 and restarted computer - Landscape printing WRONG
7. Upgraded to .NET Framework 4.6.2 and restarted computer - Landscape printing WRONG
8. Upgraded to .NET Framework 4.7 and restarted computer - Landscape printing WRONG


framework.jpg (165.3 kB)
Sergiu Marincean Sep 20, 2017 at 02:10 PM

Hi Don,

I made another test today. I created a custom Print button in my solution, calling the PrintToPrinter(), ReportDocument method, and the landscape printing problem was gone. All good.

I still have this problem when I use the Print button from CrystalReportsViewer:

If I can find a solution, I prefer to use the CrystalReportsViewer Print button, not a custom one.


Show 3 Share
10 |10000 characters needed characters left characters exceeded

Hi Sergiu,

Is the report set to No Printer?

I don't know why, it works fine for me and the Viewers Print button uses the same P2P API....

On the download Wiki there is a link to a Printer test app I wrote, see if that viewers print button works for you.



Yes, the report is set to No Printer.

My custom Print button code, calling the P2P method(Landscape printing OK):

System.Windows.Controls.PrintDialog printDialog =newSystem.Windows.Controls.PrintDialog();
printDialog.PageRangeSelection = PageRangeSelection.AllPages;
printDialog.UserPageRangeEnabled = true;
Nullable<Boolean>print= printDialog.ShowDialog();if(print== true){System.Drawing.Printing.PrinterSettings printerSettings =newSystem.Drawing.Printing.PrinterSettings();
        PageSettings pageSettings =new PageSettings();rep.PrintToPrinter(printerSettings, pageSettings, false);}

Sorry, but I can't find the link to Printer test app. Can you provide me a download link?



Really... you didn't look very hard.

Printing Crystal Reports in .NET

No Printer means it is using the Default printer properties, it's likely finding the XPS printer and that driver is not capable of printing landscape.