我想在程序中实现相当于windows的操作:windows的操作如下:
我的电脑--控制面板--打印机--文件菜单--服务器属性--自定义纸张的大小--比如设定:241*100
具体:宽度:24.10CM 高度 10.00CM
打印机属性--打印首选项--高级和打印机属性--设备设置--三种纸张大小全部设定成241*100我想用api实现这些等同于windows的功能,可以实现不?
http://community.csdn.net/Expert/topic/3433/3433731.xml?temp=.5443079 100分
解决一块给分

解决方案 »

  1.   

    http://support.microsoft.com/default.aspx?scid=kb;EN-US;282474参考
      

  2.   

    多谢online(龙卷风V3.0--笑傲江湖) ,已经解决第一个问题了。
      

  3.   

    同一问题:http://community.csdn.net/Expert/topic/3433/3433731.xml?temp=.8554651
      

  4.   

    看我的blog:window 2000下的打印设定
    http://blog.csdn.net/yefanqiu/archive/2004/07/13/Win2000Print.aspx
      

  5.   

    我这一段时间看了好多这方面的,现在我的看法是:*****增加纸张的大小:Declare Function AddForm& Lib "spoolss.dll" Alias "AddFormA" (ByVal hPrinter As Long, ByVal Level As Long, pForm As FORM_INFO_1) 
    说明 
    为打印机的表单列表添加一个新表单。“表单”描述了一个页面大小及布局,提供了一种与设备无关的机制,可实现Windows NT下的纸张尺寸的标准化 
    返回值 
    Long,非零表示成功,零表示失败。会设置GetLastError 
    参数表 
    参数 类型及说明 
    hPrinter Long,一个已打开的打印机对象的句柄(用OpenPrinter获得) 
    Level Long,设为1 
    pForm FORM_INFO_1,对表单进行描述的一个结构 
    适用平台 
    Windows NT
     
    其他 
    在VB的API文本查看器里复制的声明如下:
    Declare Function AddForm Lib "winspool.drv" Alias "AddFormA" (ByVal hPrinter As Long, ByVal Level As Long, pForm As Byte) As Long 
    *****修改纸张的大小:
    Declare Function SetForm& Lib "spoolss.dll" Alias "SetFormA" (ByVal hPrinter As Long, ByVal pFormName As String, ByVal Level As Long, pForm As Byte) 
    说明 
    为指定的表单设置信息 
    返回值 
    Long,非零表示成功,零表示失败。会设置GetLastError 
    参数表 
    参数 类型及说明 
    hPrinter Long,指定一个打开打印机的句柄(用OpenPrinter取得) 
    pFormName String,欲设置的表单的名字 
    Level Long,设为1 
    pForm Byte,包含一个有效FORM_INFO_1结构的缓冲区 
    适用平台 
    Windows NT 
    注解 
    请参考AddForm函数。
     
    *****从注册表中得到打印机的配置:Declare Function GetPrinterData Lib "winspool.drv" Alias "GetPrinterDataA" (ByVal hPrinter As Long, ByVal pValueName As String, pType As Long, pData As Byte, ByVal nSize As Long, pcbNeeded As Long) As Long 
    说明 
    为打印机设置注册表配置信息 
    返回值 
    Long,非零表示成功,零表示失败。会设置GetLastError 
    参数表 
    参数 类型及说明 
    hPrinter Long,一个已打开的打印机的句柄(用OpenPrinter获得) 
    pValueName String,欲设置的注册表值的名称 
    pType Long,指定数据类型。使用来自API32.TXT的、以REG_??开头的一个常数 
    pData Byte,指定一个Byte数组以接收数据 
    nSize Long,以字节表示的pData数组的长度 
    pcbNeeded Long,指向一个Long型变量的指针,该变量用于保存请求的缓冲区长度,或者实际读入的字节数量 
    *****从注册表中修改打印机的配置:Declare Function SetPrinterData Lib "winspool.drv" Alias "SetPrinterDataA" (ByVal hPrinter As Long, ByVal pValueName As String, ByVal dwType As Long, pData As Byte, ByVal cbData As Long) As Long 
    说明 
    设置打印机的注册表配置信息 
    返回值 
    Long,ERROR_SUCCESS表示成功,一个错误值表示失败。 
    参数表 
    参数 类型及说明 
    hPrinter Long,指定一个已打开的打印机的句柄(用OpenPrinter取得) 
    pValueName  String,欲设置的注册表值名 
    dwType Long,定义数据的类型,使用来自API32.txt文件的、以REG_起头的一个常数 
    pData Byte,指定一个缓冲区的第一个条目,缓冲区中包含了要设置的适当的数据类型 
    cbData Long,缓冲区pData的长度 但是由于本人的水平有限,后两种函数使用不熟练,望高手赐教。