随笔分类 - 快递单打印软件
摘要:继续打印功能的研究,发现,其他人使用API只是用代码向打印机中添加纸张类型,这段代码对我意义不大,我现在完全可以手工添加它。我真正想要的是 printDocument.DefaultPageSettings.PaperSize = new PaperSize();//自定义打印纸张的大小 printDocument.DefaultPageSettings.PaperSize.Width = 906; printDocument.DefaultPageSettings.PaperSize.Height = 500; printDo...
阅读全文
摘要:在实际应用中,票据是多种多样的,用针式打印机进行打印,要自定义纸张的格式;只有精确定义好纸张的高度,打印机在索引送纸时才不会出现误差。每一种纸张格式都有唯一一个ID,在代码中设置要打印的水晶报表的纸张格式时,就是通过指定此ID来实现的。所以,接下来的关键问题是在代码中如果获得自定义的纸张ID,下面的代码(以C#为例)就实现些功能:System.Drawing.Printing.PrintDocument doc = new System.Drawing.Printing.PrintDocument();int rawKind = 1; //记录标识自定义纸张的ID//枚举出所有的打印纸尺寸wh
阅读全文
摘要:打印机有两种进纸方式,手动送纸和链式进纸。手动进纸相对简单,就是从前面或从上面一张张的放纸打印,但是链式进纸对纸张的要求比较高,特别是当你批量打印上千份快递单时。链式打印的原理就是,打印机每打印一张就自动根据你设定的打印纸张换页一次。所以如果的你设定的纸张高度稍有偏差就会引起走纸不准确。于是打印偏到上面或下面去了。J有无数人试图用A4纸来链式进纸批量打印快递单,甚至还抱怨说软件偏移不稳定。因为标准的快递纸张的高度12.7cm,而A4纸高度是29.7cm,所以你看到的现象是打完一张然后多走纸一段,再打印。所以要链式进纸批量打印你必须测量一下你的快递单,定义一张你的专用纸张。方法如下(Window
阅读全文
摘要:随着电脑配置的档次越来越高档,操作系统也从Windows 98向Windows XP过渡。现在随机配套的操作系统一般都为Windows XP操作系统。在Windows 98中打印机纸张设置中有专门的自定义选项,而在Windows XP中打印机纸张设置中没有了自定义选项,这为许多要打印大字、证书或特殊材料的朋友带来了不便。那么如何在Windows XP中设置打印机自定义纸张呢,下面就给出一种方法。依次点击“开始/设置/打印机和传真”,在“打印机和传真”窗口中点击“文件/服务器属性”,打开“打印服务器属性”对话框(如图1)。图1 打印服务器属性然后选中“创建新格式”复选框,并在“表格名”中输入“自
阅读全文
摘要:LONG DocumentProperties( HWND hWnd, HANDLE hPrinter, LPTSTR pDeviceName, PDEVMODE pDevModeOutput, PDEVMODE pDevModeInput, DWORD fMode); 六个参数中只有pDevModeOutput 是输出变量,其余五个参数必须由程序给出具体值。其中,hWnd 表征当前窗口的句柄值;hPrinter 表示当前打印机的句柄;pDeviceName 是对打印机设备的描述;pDevModeOutput 是指向句柄值为hPrinter 的打印机...
阅读全文
摘要:研究快递打印软件快一周了,好郁闷啊......软件的设计思路已经掌握了:1、准备好快递图片 2、填写快递信息 3、打印快递信息从我研究的进度来看,现在只有两个难题需要解决:1、自定义打印纸张大小;2、连张打印技术。如果能够解决这两个技术难题,快递打印软件就算完成了。当然,我也可以考虑使用水晶报表来完成打印功能。明天尝试着不直接打印,而是使用其他控件先设置好,最后再打印。
阅读全文
摘要:using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Windows.Forms; using Microsoft.Win32.SafeHandles; using System.Runtime.InteropServices; using System.ComponentModel; namespace Comm ...{ publicclass TicketPrinter ...{ publicconstshort FILE_ATTRIBUTE_...
阅读全文
摘要:windows一个特点就是设备无关性,这样就给程序控制打印机提供了很好的方法。首先引用“泥人张”写的打印API类。usingSystem;usingSystem.Collections;usingSystem.Text;usingSystem.Runtime.InteropServices;usingSystem.Security;usingSystem.ComponentModel;usingSystem.Drawing.Printing;namespacePrintAPI{publicclassPrinter{privatePrinter(){}///泥人张版本加强版API声明API声明i
阅读全文
摘要:到网上一搜,有很多关于打印页面设置值怎么老是变、自定义纸张和连续走纸的问题。有很多说法,有些说是VS.NET的bug,有的说必须用API,还有的说... 其实,是我们自己没有研究透,这里给一些解决办法。 用PageSetupDialog做打印页面设置值时,每显示一次对话框输入页边距,下次再进入页面设置对话框输后发现原来的值变了,再下次再变? 为什么呢,这并不是VS.net的bug,其实不能怪微软,人家是做全球的,而我们使用的是中文版,存在一个公制和美制的单位转换问题。 一般使用页面设置值对话框时是把工具箱中的这个控件拖到窗口用,其实这样不方便,也不利于代码的复用和统一。我做了一个 Printe
阅读全文
摘要:长江支流说的办法保留太多了,结果不行,很多类都是他在程序集里自定义的,源码又没公开不过还是要感谢他的提示今天和小陈搞了一天,他在国外的论坛上看到了一篇文章得到了启示,最后我们在凌晨3点终于把自定义纸张的代码给写出来了,看来必须用API,微软的.NET对打印的支持太菜了现公开我们工作室实现此功能的部分代码usingSystem;usingSystem.Text;usingSystem.Runtime.InteropServices;usingSystem.Security;usingSystem.ComponentModel;usingSystem.Drawing.Printing;namesp
阅读全文
摘要:usingSystem.Drawing.Printing;usingSystem.Drawing;privatevoidTest(){PrintDocumentm_pdoc=newPrintDocument();PaperSizepsz=newPaperSize();m_pdoc.PrinterSettings.PrinterName="MicrosoftOfficeDocumentImageWriter";psz.RawKind=0;//Printing.PaperKind.Custom此枚举的值是0psz.Width=350;psz.Height=350;m_pdoc.
阅读全文
摘要:.Net 提供的打印类PrintDocument 非常简洁易用,不过在实际应用开发中往往需要对纸张进行自定义,尤其是需要进行票据打印时。这个问题也困扰了我许久,经过查阅相关的资料和多次尝试,发现其实也很简单。下面的示例就是我在.Net2.0已经验证可行的办法:using System;using System.Collections.Generic;using System.Text;using System.Drawing;using System.Drawing.Printing;namespace PrintService{ class AFCSPrinter : { ...
阅读全文
摘要:近日做一项目,需要有大量的报表和单据打印,以前做过使用水晶报表来打印的,感觉太过麻烦,效果也不理想,这次查找资料中,找到了蜡人张的报表http://www.cnblogs.com/waxdoll/category/49402.html,有很不错的解决方案,潜心学习了一番,并下载了蜡人张提供的示例程序,加以修改。在此多谢蜡人张的程序。 在使用过程中,我做了一个打印发票单据的模拟测试,需要打印的内容有客户名称,年月日,以及客户的项目费用列表及合计。这就需要有两个数据源表,用蜡人张的示例程序,试验多次,无法实现这个需求,这跟我极少接触报表,此方面知识欠缺有很大的关系。由于时间紧迫,我使用了一个变通.
阅读全文
摘要:NT,2000,XP,2003....下不能用DefaultPageSettings.PaperSize = new PaperSize("Custom", 826, 492)这种方式定义纸张大小,Win98可以。你需要在服务器属性中添加自定义表单,然后用C# codeforeach (PaperSize paperSize in printDoc.PrinterSettings.PaperSizes){ if (paperSize.PaperName =="自定义表单名称"&& paperSize.Height == width &am
阅读全文
摘要:写了个winfor的套打表格的程序,由于纸张大小特殊,在c#中找了半天设置打印机相关的内容也没有设置成功。最后只得在操作系统中进行设置。方法如下:控制面板中打开“打印机和传真机设置”窗口1打开文件菜单的服务器属性,在里面定义一个新的纸张类型,设置好纸张大小和打印边距。2右键单击打印机设置打印首选项,在纸张中选择刚才设置的新的纸型。3回到程序中直接按照刚设好的纸型就行打印控制。哈哈,一切正如所料,打印很成功在c#的gdi+中,graphics对象的PageUnit 属性 设置为 GraphicsUnit.Millimeter,这样使用drawstring方法输出字符串时,坐标的单位就变成了毫米,
阅读全文
摘要:打印时,自定义纸张using System.Drawing.Printing;在Window 98下使用PrintDocument Document = new PrintDocument();Document.DefaultPageSettings.PaperSize = new PaperSize("A5", 827, 583);在Win2000,XP以上的版本中使用PaperSize ps = new PaperSize("自定", 627, 583);foreach (PaperSize ps2 in Document.PrinterSettin
阅读全文
摘要:http://blog.csdn.net/flygoldfish
阅读全文
摘要:开源:MIS金质打印通原理及实现 Step by step (1)原理篇 前面我们说了打印页面设置、打印机设置、打印预览对话框的实现,这个通用的类大家可以自己修改一下用于自己的项目中。这个类也将用于我们即将讲解并已实现的MIS金质打印通中,让我们一起动手来实现自己的MIS打印程序吧! 从现在开始,我们来一步一步的实现怎样打印管理信息系统(MIS)的报表、单据(如采购订单、订货单等)、合同(如工矿企业合同,格式非常复杂的合并网格,文本等)等等。 很多打印程序,都是针对特定的网格控件如DataGrid打印,但是,为了通用,我们想想怎么办呢? 实现的它们的核心,也就是实现二维数据的打印,加上绘制线,
阅读全文
摘要:1公分=1厘米=1cm ,一英寸=0.0254m=2.54cm,一英尺=30.48cm,所以1厘米就是0.3937英寸1英尺(foot)=30.48厘米1英寸(inch)=2.54厘米1英尺(foot)=12英寸(inch)1厘米就是0.3937英寸
阅读全文
摘要:初始化PaperSize类的新实例。命名空间:System.Drawing.Printing程序集:System.Drawing(在 System.Drawing.dll 中)语法C#C++F#VBpublic PaperSize( string name, int width, int height)参数name类型:System.String纸张名称。width类型:System.Int32纸张宽度,以百分之一英寸为单位。height类型:System.Int32纸张高度,以百分之一英寸为单位。备注使用此构造函数创建的PaperSize始终将其Kind属性设置为Custom。只能为自定义P
阅读全文
浙公网安备 33010602011771号