نوشته شده توسط
zagroti
سلام بجای کنترل stiViewerControl از stiDotMatrixViewerControl استفاده کن.این نوع چاپگرهای سوزنی به DotMatrix می شناسن جهت اطلاعات کامل تر بهتره به سایت stimulsoft بری و داکیومنت آن رو مطالعه کنی.لازم اسن یاداوری کنم که و هر خط از گزارش در مد DotMotrix حداکثر از 80 کاراکتر رو پشتیبانی میکند
با سلام و تشکر از پاسخت مهندس عزیز
بنده اصلا از viewer استفاده نکردم و بدون printpreview مستقیم فرستادم به چاپگر
البته در خود فایل پزارش در برنامه استیمول بعد راهنمایی شما یه پروپرتی پیدا کردم به اسم preview که دو حالت standard و dotmatrix داست. که بنده روی حالت استاندارد که مناسب پرینترهای حرارتی و لیزریه گذاشته بودمش.
منظور شما همینه؟
آیا با این گزینه مشکل حله؟
قطعه کد رو هم براتون میزارم:
private void PrintBillToNoskhe(string BillID) {
PatientClacc.PatientVisitBill pv = new PatientClacc.PatientVisitBill();
DataTable dt = new DataTable();
dt = pv.GetBillReportNoskhe(BillID);
string ReportPath = Application.StartupPath + @"\Reports\" + "PatientBillNoskhe.mrt";
if (File.Exists(ReportPath))
{
System.Drawing.Printing.PrinterSettings st = new System.Drawing.Printing.PrinterSettings();
string PrinName = FindNoskhePrinter();
if (!string.IsNullOrEmpty(PrinName))
{
stiReportBillNoskhe.Load(ReportPath);
stiReportBillNoskhe.RegData("DTPatientBillNoskhe", dt);
stiReportBillNoskhe.Render(false);
//stiReportBillNoskhe.Render(true);
st.PrinterName = PrinName;
stiReportBillNoskhe.Print(true, st);
//stiReportBillNoskhe.ShowWithRibbonGUI();
}
else
{
MessageBoxEx.EnableGlass = false;
MessageBoxEx.Show("پرینتر مناسب یافت نشد", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
return;
}
}
else
{
MessageBoxEx.EnableGlass = false;
MessageBoxEx.Show("فایل گزارش یافت نشد", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
return;
}
}