on 11-08-2017 11:24 AM
Don,
You have been resolving my crystal reports issues, Thank you.
Exporting of PDF, I had used the following line to get PDF generated. Instead of older code
rp.ExportToHttpResponse (CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, Response, true, "reportname");
Older code which does not support the new crystal reports
//MemoryStream oStream; // using System.IO
//oStream = (MemoryStream)
//rp.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
//Response.Clear();
//Response.Buffer = true;
//Response.ContentType = "application/pdf";
//Response.BinaryWrite(oStream.ToArray());
//Response.End();
I am facing a new problem while setting the printer name dynamically fetching from table..
In one of the report the below mentioned code works perfect and goes to printer.
string str_printer = string.Empty;
str_printer = drtemp[0].ToString();
rp.PrintOptions.PrinterName = str_printer;
rp.PrintOptions.PaperOrientation = PaperOrientation.Landscape;
rp.PrintOptions.PaperSize = PaperSize.PaperLetter;
rp.PrintToPrinter(1, true, 0, 0);
The above same code does not seem to work in another report, the str_printer names become empty.
I tried debugging the code. str_printer get the value "HPM651", when it passes the below line
rp.PrintOptions.PrinterName = str_printer;
it becomes empty.
Please let me know how to assign printer name, why is that the printer name getting empty only in the above case.
Thanks
Venkat
Try my printer app, use a report with saved data:
https://blogs.sap.com/2015/08/19/printing-crystal-reports-in-net/
Don
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Don,
I don't understand why, when my client was using Crystalreport 2008, the same printtoprinter worked well. Now that he had moved to Windows 2012 R2 server and crystalreports 2016, the printing is getting so much delayed.
As suggested, I wanted to give a try to use
PrinterOutputController
My local machine: Windows 8.1; 32bit Crystal Reports 2016; Visual Studio 2017
CrystalDecisions.ReportAppServer.ReportDefModel
CrystalDecisions.ReportAppServer.Controllers
C:\Program Files\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86
I was able to add the above reference to my project and was able to build it right.
CrystalDecisions.ReportAppServer.Controllers.PrintReportOptions printReportOptions = new CrystalDecisions.ReportAppServer.Controllers.PrintReportOptions();
CrystalDecisions.ReportAppServer.Controllers.PrintOutputController printOutputController = new CrystalDecisions.ReportAppServer.Controllers.PrintOutputController();
CrystalDecisions.ReportAppServer.ClientDoc.ISCDReportClientDocument rptClientDoc;
System.Drawing.Printing.PrinterSettings printerSettings = new System.Drawing.Printing.PrinterSettings();
System.Drawing.Printing.PageSettings pSettings = new System.Drawing.Printing.PageSettings(printerSettings);
rp.PrintOptions.PaperOrientation = PaperOrientation.Landscape;
rp.PrintOptions.PaperSize = PaperSize.PaperLetter;
rp.PrintOptions.PrinterDuplex = PrinterDuplex.Vertical;
rptClientDoc = rp.ReportClientDocument;
printReportOptions.PrinterName = "HP8150";
rptClientDoc.PrintOutputController.PrintReport(printReportOptions);
When I am trying the above source in client server location which is 2012 R2 server which is a 64bit which has got all Crystal reports 2016, visual studio 2017
The dll's where in a different location
CrystalDecisions.ReportAppServer.ReportDefModel
CrystalDecisions.ReportAppServer.Controllers
I could not build the application as the reference could not be sorted out error ; 'Controller' is inaccessible due to protection level.
Please let me know what needs to be done to resolve this issue
Thanks
Venkat
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Use POC to print always, much more control and uses CR runtime to do the printing. P2P uses the System printer only.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello,
Thanks Jessica,
I tried the following method to sent the report to the printer, it worked.
System.Drawing.Printing.PrintDocument pDoc = new System.Drawing.Printing.PrintDocument();
CrystalDecisions.Shared.PrintLayoutSettings PrintLayout = new CrystalDecisions.Shared.PrintLayoutSettings();
System.Drawing.Printing.PrinterSettings printerSettings = new System.Drawing.Printing.PrinterSettings();
string str_printer = string.Empty;
str_printer = drtemp[0].ToString();
printerSettings.PrinterName = str_printer;
System.Drawing.Printing.PageSettings pSettings = new System.Drawing.Printing.PageSettings(printerSettings);
rp.PrintOptions.DissociatePageSizeAndPrinterPaperSize = true;
rp.PrintOptions.PaperOrientation = PaperOrientation.Landscape;
//rp.PrintOptions.PrinterDuplex = PrinterDuplex.Simplex;
rp.PrintToPrinter(printerSettings, pSettings, false, PrintLayout);
However, I have not changed my previous code for all other reports
string str_printer = string.Empty;
str_printer = drtemp[0].ToString();
rp.PrintOptions.PrinterName = str_printer;
rp.PrintOptions.PaperOrientation = PaperOrientation.Landscape;
rp.PrintOptions.PaperSize = PaperSize.PaperLetter;
rp.PrintOptions.PrinterDuplex = PrinterDuplex.Horizontal;
rp.PrintToPrinter(1, true, 0, 0);
Though the above code works well for printing, in some cases my client complains that the printer is getting smudged/paper is jammed and trying to print the job over and over again. Is there any solution for this?. Why is that the print job is getting repeated over and over gain.
Thanks
Venkat
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
you need to add the appropriate reference.
Go to your solutionexplorer, select your project and navigate to references.
Press "Add Reference" and the reference-manager should open up.
Navigate to assemblies, choose extensions and mark "CrystalDecisions.ReportAppServer.Controllers"
Hope it helps.
Jessica
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Don,
Thanks for your speedy response
I tried to make use of the below code to use PrintOutPutController instead of PrinttoPrinter.
System.Drawing.Printing.PrintDocument pDoc = new System.Drawing.Printing.PrintDocument();
CrystalDecisions.ReportAppServer.Controllers.PrintReportOptions rasPROpts = new CrystalDecisions.ReportAppServer.Controllers.PrintReportOptionsClass();
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper rptClientDoc = new CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper();
pDoc.PrinterSettings.PrinterName = "HPM651";
rasPROpts.PrinterName = "HPM651";
rptClientDoc.PrintOutputController.PrintReport(rasPROpts);
Please refer the screen of the error attached.error-controler.jpg
Let me know your suggestions.
Thanks
Venkat
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Use the printer test app in this post:
https://wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads
You need to use PrintOutputController to do the printing.
Don
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.