如何使用ASP.Net在Crystal Report中设置自定义页面大小 [英] How to set custom pagesize in Crystal Report using ASP.Net
问题描述
大家好,
我使用的纸张尺寸为6英寸X 4英寸。我在Crystal Report中设计了一个报告,并将纸张尺寸设置为6英寸X 4英寸。当我在Web浏览器中打开报表时,它仅显示A4大小的报表。所以我决定编写用于使用编码设置页面大小和打印机名称的代码。以下是相同的代码。
Hi All,
I am using paper stationary of size 6in X 4 in. I have designed a report in Crystal Report and set Paper Size as 6in X 4in. When I open report in Web Browser, it displays report in A4 size only. So I decided to write code for setting Page Size and Printer Name using coding. Following is the code for the same.
ReportDocument rd = new ReportDocument();
CrystalDecisions.CrystalReports.Engine.PrintOptions REPOPTIONS;
REPOPTIONS = rd.PrintOptions;
REPOPTIONS.PaperOrientation=CrystalDecisions.Shared.PaperOrientation.Portrait;
REPOPTIONS.PaperSize = getpapersizeid("EpsonLX", "Receipts");
REPOPTIONS.PrinterName = "EpsonLX";
rd.Load(Server.MapPath("~\\DonationReciptdot.rpt"));
rd.Database.Tables[0].SetDataSource(rptDRdt);
Session["cryrpt"] = rd;
Response.Buffer = false;
Response.ClearContent();
Response.ClearHeaders();
Session["rpt"] = rd;
Response.Redirect("~/Receipts/ReportViw.aspx");
protected int getpapersizeid(string printername, string papersizename)
{
System.Drawing.Printing.PrintDocument doctoprint=new System.Drawing.Printing.PrintDocument();
int papersizeid = 0;
string ppname = "";
string s = "";
doctoprint.PrinterSettings.PrinterName=printername;
int i;
for (i = 0; i < doctoprint.PrinterSettings.PaperSizes.Count - 1; i++)
{
int rawkind;
ppname = papersizename;
if (doctoprint.PrinterSettings.PaperSizes[i].ToString() == ppname)
{
//rawkind = convert.toint16(doctoprint.printersettings.papersizes(i));
rawkind = convert.toint16(doctoprint.PrinterSettings.PaperSizes[i].GetType().GetField("kind", System.Reflection.BindingFlags.Instance || System.Reflection.BindingFlags.NonPublic).getvalue(doctoprint.PrinterSettings.PaperSizes[i]));
papersizeid = rawkind;
break;
}
}
return papersizeid;
}
以上代码设置纸张尺寸为收据尺寸为6英寸x 4英寸。 (我使用打印机设备中的服务器属性选项创建了名称为收据的自定义页面,而EpsonLX是我的共享打印机名称。
现在上面的代码给出了以下错误。
错误5无法将类型'int'隐式转换为'CrystalDecisions.Shared.PaperSize'。存在显式转换(您是否缺少演员?)E:\ RamnathTest2 \ MeargeRandF \Donation.aspx.cs 639 35 E:\ RamnathTest2 \ MeargeRandF \
错误10运算符'||'不能应用于'System.Reflection.BindingFlags'和'System.Reflection.BindingFlags'类型的操作数E:\ RamnathTest2 \ MeargeRandF \ Donation.aspx.cs 1187 111 E:\ RamnathTest2 \ MeargeRandF \
尝试解决但无法解决问题。请帮助。
如果有人有其他更简单的解决方案,请回复。
谢谢。
Above code set Paper Size as Receipts which is of size 6in X 4in. (I have created custom page with name Receipts using Server Properties in Devices in Printers option) and EpsonLX is my shared printer name.
Now above code gives me following errors.
Error 5 Cannot implicitly convert type 'int' to 'CrystalDecisions.Shared.PaperSize'. An explicit conversion exists (are you missing a cast?) E:\RamnathTest2\MeargeRandF\Donation.aspx.cs 639 35 E:\RamnathTest2\MeargeRandF\
Error 10 Operator '||' cannot be applied to operands of type 'System.Reflection.BindingFlags' and 'System.Reflection.BindingFlags' E:\RamnathTest2\MeargeRandF\Donation.aspx.cs 1187 111 E:\RamnathTest2\MeargeRandF\
Tryint to resolve but unable to. Kindly help.
If anyone has other easier solutions, please reply back.
Thanks.
推荐答案
这篇关于如何使用ASP.Net在Crystal Report中设置自定义页面大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!