如何获得一个打印机的最小页边距(左,右,上,下) 
求VB代码 
好像与打印机的驱动有关的,与打印机的设置好像也有关! 
可以用下面的代码试一试: Private Sub Command1_Click() 
   With Printer 
       .CurrentX = 0 
       .CurrentY = 0 
       .FontSize = 9 
       Printer.Print "This is a example!" 
       .EndDoc 
   End With 
End Sub 
事实上,Word中如果页边距设得太小,Word会提示你***超出打印范围,是否需要调整?……,而这里的“打印范围”与安装的打印机是有关系的,在Word中我做过这样的试验!

解决方案 »

  1.   

    win32 API中
    GetDeviceCaps(dc,VERTSIZE)
    GetDeviceCaps(dc,HORZSIZE)
    返回页面的可打印的横向的和纵向的最大长度
      

  2.   

    返回打印机的信息可以用以下函数
    Public Declare Function GetPrinter Lib "winspool.drv" Alias "GetPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pPrinter As Any, ByVal cbBuf As Long, pcbNeeded As Long) As Long
    但,好像打印机根本就没有页边距方面的属性,要返回它,应该到相关发出打印的对象去返回
      

  3.   

    那么Word中的提示又是怎么样的一种思路做的呢?我们实验室有一台EPSON的针打,一台HP的激光打,用标准的纸张型号都没有问题,但是如果自定义大小的话,两台打印机的表现都不是特别让人满意,不过HP的激光打更让人受不了,一张差不多B5的纸,给我留了那么大空白不让打印,
        如果自定义纸张大小后依次将两种打印机设为缺省打印机再依次预览,效果是不一样的,Word打出来的效果和打印预览时的效果是一致的,Word是如何判断“可打印区域”的呢?
      

  4.   

    经过一个下午的试验,我现在基本放弃了在我的程序中提供自定义纸张大小的功能,因为如果得不到“可打印的区域”的具体值,那么我们用Picturebox做的打印预览就太假了,不是吗?