因为最近在作一个医院的收费系统,需要发票打印,而且是套打,请问如何实现?以前没有作过这种小票打印,请高手指点。因为以前只作过报表打印,可是那种感觉很容易实现,可是这种以固定模式打印却不知从何下手了。哪位朋友有源码的最好能贴一点上来,也让我见识一下,少走些弯路。谢谢。
解决方案 »
- How can I make a set of StackPanels look like several items.
- sapi语音
- 用了事务,为什么还死锁?
- WebBrower.url 怎么显示aspx文件 显示asp。net网页(aspx文件在本地)
- 如何用c#代码执行.net自带的工具,例如csc.exe和windiff.exe
- 接口和委托能一起用吗 ?
- VB使用C#动态库
- 大家来帮忙!
- 100 分 !!!!!急需Programming MS Windows with Csharp源代码
- 关于SHARPDEVELOP的问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 水晶报表问题!!
- C#2005 FOR WEB 的水晶报表的曲线图怎么写,给个提示吧,谢谢!
发票类似于支票。
private void SavePrintSetting()
{
RegistryKey hKey = Registry.CurrentUser.CreateSubKey(@"Software\xxxx公司\打印设置\3.0");
RegistryKey subKey = hKey.CreateSubKey(this.GetType().GUID.ToString("B"));
subKey.SetValue("PaperName", this.m_PrintDoc.DefaultPageSettings.PaperSize.PaperName);
subKey.SetValue("PaperKind", this.m_PrintDoc.DefaultPageSettings.PaperSize.Kind);
subKey.SetValue("PaperWidth", this.m_PrintDoc.DefaultPageSettings.PaperSize.Width);
subKey.SetValue("PaperHeight", this.m_PrintDoc.DefaultPageSettings.PaperSize.Height);
subKey.SetValue("PaperTop", this.m_PrintDoc.DefaultPageSettings.Margins.Top);
subKey.SetValue("PaperBottom", this.m_PrintDoc.DefaultPageSettings.Margins.Bottom);
subKey.SetValue("PaperLeft", this.m_PrintDoc.DefaultPageSettings.Margins.Left);
subKey.SetValue("PaperRight", this.m_PrintDoc.DefaultPageSettings.Margins.Right);
subKey.SetValue("PrinterName", this.m_PrintDoc.PrinterSettings.PrinterName);
subKey.SetValue("Landscape", this.m_PrintDoc.DefaultPageSettings.Landscape ? 1 : 0, RegistryValueKind.DWord);
subKey.Close();
}
private void LoadPrintSetting()
{
RegistryKey hKey = null;
RegistryKey subKey = null;
bool printResult = false, paperResult = false;
try
{
hKey = Registry.CurrentUser.OpenSubKey(@"Software\xxxx公司\打印设置\3.0");
subKey = hKey.OpenSubKey(this.GetType().GUID.ToString("B"));
string pName = subKey.GetValue("PaperName").ToString();
System.Drawing.Printing.PaperKind pKind = (System.Drawing.Printing.PaperKind)System.Enum.Parse(typeof(System.Drawing.Printing.PaperKind),subKey.GetValue("PaperKind").ToString());
int pWidth = (int)subKey.GetValue("PaperWidth");
int pHeight = (int)subKey.GetValue("PaperHeight");
string printer = subKey.GetValue("PrinterName").ToString();
int landscape = (int)subKey.GetValue("Landscape", 0);
foreach (string p in PrinterSettings.InstalledPrinters)
{
if (p == printer)
{
this.m_PrintDoc.PrinterSettings.PrinterName = printer;
printResult = true;
break;
}
}
this.m_PrintDoc.DefaultPageSettings.Landscape = (landscape == 1);
foreach (PaperSize pSize in this.m_PrintDoc.PrinterSettings.PaperSizes)
{
if ((pSize.PaperName == pName) && (pSize.Kind == pKind) && (pSize.Width == pWidth) && (pSize.Height == pHeight))
{
this.m_PrintDoc.DefaultPageSettings.PaperSize = pSize;
paperResult = true;
break;
}
}
this.m_PrintDoc.DefaultPageSettings.Margins.Top = (int)subKey.GetValue("PaperTop");
this.m_PrintDoc.DefaultPageSettings.Margins.Bottom = (int)subKey.GetValue("PaperBottom");
this.m_PrintDoc.DefaultPageSettings.Margins.Left = (int)subKey.GetValue("PaperLeft");
this.m_PrintDoc.DefaultPageSettings.Margins.Right = (int)subKey.GetValue("PaperRight"); }
catch (Exception)
{
printResult = false;
}
finally
{
if (subKey != null)
subKey.Close();
if (hKey != null)
hKey.Close();
} if ((!printResult) || (!paperResult))
{
this.SavePrintSetting();
}
}
这个报表支持:
http://www.kitesoft.cn