失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 弄了一整天 终于把打印自定义纸张大小搞定了(上)--IT man

弄了一整天 终于把打印自定义纸张大小搞定了(上)--IT man

时间:2020-09-23 11:58:17

相关推荐

弄了一整天 终于把打印自定义纸张大小搞定了(上)--IT man

Csdn-Blog <script language="javascript" src="/count/count2.asp"></script>

弄了一整天,终于把打印自定义纸张大小搞定了(上)

点都不清楚,去看看ms的msdn,关于自定义打印纸张的问题解答 皮皮:

给我你的邮箱吧,我发给你 正在找这个:

能不能把这些源代码给我一个啊!

QQ:37893114 兔子:

注意劳逸结合~哈~身体是革命的本钱啊~~ 呵呵 王学威:

过去不等到于未来!没有失败,只有暂时停止成功!

上一篇:关于在C#中加入非托管的DLL的一些文章连接

|

下一篇:我的GOOGLE编程题答案(C#版)

functionStorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}

弄了一整天,终于把打印自定义纸张大小搞定了

长江支流说的办法保留太多了,结果不行,很多类都是他在程序集里自定义的,源码又没公开

不过还是要感谢他的提示

今天和小陈搞了一天,他在国外的论坛上看到了一篇文章得到了启示,最后我们在凌晨3点终于把自定义纸张的代码给写出来了,看来必须用API,微软的.NET对打印的支持太菜了

现公开我们工作室实现此功能的部分代码

usingSystem;

usingSystem.Text;

usingSystem.Runtime.InteropServices;

usingSystem.Security;

ponentModel;

usingSystem.Drawing.Printing;

namespaceMCCustomPrintForm {

///<summary>

///成都微创工作室(电子科技大学微创工作室)

///Tell028-82853098

///Email

zyspipi@ ,

you680@

///打印机纸张的真正自定义部分代码

///-1-2

///</summary>

publicclassMCCustomPrintForm {

//Makeastaticclass

privateMCCustomPrintForm()

{

}

[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Auto)]

internalstructstructPrinterDefaults

{

[MarshalAs(UnmanagedType.LPTStr)]publicStringpDatatype;

publicIntPtrpDevMode;

[MarshalAs(UnmanagedType.I4)]publicintDesiredAccess;

};

[DllImport("winspool.Drv",EntryPoint="OpenPrinter",SetLastError=true,

CharSet=CharSet.Unicode,ExactSpelling=false,CallingConvention=CallingConvention.StdCall),

SuppressUnmanagedCodeSecurityAttribute()]

internalstaticexternboolOpenPrinter([MarshalAs(UnmanagedType.LPTStr)]

stringprinterName,

outIntPtrphPrinter,

refstructPrinterDefaultspd);

[DllImport("winspool.Drv",EntryPoint="ClosePrinter",SetLastError=true,

CharSet=CharSet.Unicode,ExactSpelling=false,

CallingConvention=CallingConvention.StdCall),SuppressUnmanagedCodeSecurityAttribute()]

internalstaticexternboolClosePrinter(IntPtrphPrinter);

[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Auto)]

internalstructstructSize

{

publicInt32width;

publicInt32height;

}

[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Auto)]

internalstructstructRect

{

publicInt32left;

publicInt32top;

publicInt32right;

publicInt32bottom;

}

[StructLayout(LayoutKind.Explicit,CharSet=CharSet.Unicode)]

internalstructFormInfo1

{

[FieldOffset(0),MarshalAs(UnmanagedType.I4)]publicuintFlags;

[FieldOffset(4),MarshalAs(UnmanagedType.LPWStr)]publicStringpName;

[FieldOffset(8)]publicstructSizeSize;

[FieldOffset(16)]publicstructRectImageableArea;

};

[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi/*changedfromCharSet=CharSet.Auto*/)]

internalstructstructDevMode

{

[MarshalAs(UnmanagedType.ByValTStr,SizeConst=32)]publicString

dmDeviceName;

[MarshalAs(UnmanagedType.U2)]publicshortdmSpecVersion;

[MarshalAs(UnmanagedType.U2)]publicshortdmDriverVersion;

[MarshalAs(UnmanagedType.U2)]publicshortdmSize;

[MarshalAs(UnmanagedType.U2)]publicshortdmDriverExtra;

[MarshalAs(UnmanagedType.U4)]publicintdmFields;

[MarshalAs(UnmanagedType.I2)]publicshortdmOrientation;

[MarshalAs(UnmanagedType.I2)]publicshortdmPaperSize;

[MarshalAs(UnmanagedType.I2)]publicshortdmPaperLength;

[MarshalAs(UnmanagedType.I2)]publicshortdmPaperWidth;

[MarshalAs(UnmanagedType.I2)]publicshortdmScale;

[MarshalAs(UnmanagedType.I2)]publicshortdmCopies;

[MarshalAs(UnmanagedType.I2)]publicshortdmDefaultSource;

[MarshalAs(UnmanagedType.I2)]publicshortdmPrintQuality;

[MarshalAs(UnmanagedType.I2)]publicshortdmColor;

[MarshalAs(UnmanagedType.I2)]publicshortdmDuplex;

[MarshalAs(UnmanagedType.I2)]publicshortdmYResolution;

[MarshalAs(UnmanagedType.I2)]publicshortdmTTOption;

[MarshalAs(UnmanagedType.I2)]publicshortdmCollate;

[MarshalAs(UnmanagedType.ByValTStr,

弄了一整天,终于把打印自定义纸张大小搞定了(上) src="/count/iframe2.asp" frameborder="0" width="650" scrolling="no" height="160">

如果觉得《弄了一整天 终于把打印自定义纸张大小搞定了(上)--IT man》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。