vb.net打印机纸张 vbs打印( 二 )


intx=GetDeviceCaps(pDC- m_hAttribDC,
PHYSICALOFFSETX);
inty=GetDeviceCaps(pDC- m_hAttribDC,
PHYSICALOFFSETY);
intw=GetDeviceCaps(pDC- m_hAttribDC,
PHYSICALWIDTH);
inth=GetDeviceCaps(pDC- m_hAttribDC,
PHYSICALHEIGHT);
intnPageWidth=(int)((double)w*scaleX+0.5);
//纸宽 , 单位0.1mm
intnPageHeight=(int)((double)h*scaleY+0.5);
//纸高,单位0.1mm
m_nPhyLeft=(int)((double)x*scaleX+0.5);
//物理左边距,单位0.1mm
m_nPhyTop=(int)((double)y*scaleY+0.5);
//物理上边距,单位0.1mm
pDC- DPtoLP(pInfo- m_rectDraw);
CRectrcTemp=pInfo- m_rectDraw;
rcTemp.NormalizeRect();
m_nPhyRight=nPageWidth-rcTemp.Width()-
m_nPhyLeft;//物理右边距,单位0.1mm
m_nPhyBottom=nPageHeight-rcTemp.Height()-
m_nPhyTop;//物理下边距,单位0.1mm
//若边距小于物理边距 , 则调整它们
if(lm_nPhyLeft)l=m_nPhyLeft;
if(tm_nPhyTop)t=m_nPhyTop;
if(rm_nPhyRight)r=m_nPhyRight;
if(bm_nPhyBottom)b=m_nPhyBottom;
//计算并调整pInfo- m_rectDraw的大小
pInfo- m_rectDraw.left=l-m_nPhyLeft;
pInfo- m_rectDraw.top=-t+m_nPhyTop;
pInfo- m_rectDraw.right-=r-m_nPhyRight;
pInfo- m_rectDraw.bottom+=b-m_nPhyBottom;
pDC- LPtoDP(pInfo- m_rectDraw);
pDC- SetMapMode(nOldMode);
//恢复原来的映射模式
}
vb.net Document_PrintPag 打印我帮你把最后一部分的语句顺序调换一下 。你试一试
sub button1_click()'---执行打印
Dim pd As PrintDocument = New PrintDocument
pd.PrinterSettings = PrintDialog1.PrinterSettings
If _PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
for i=0 to 1'这样可以两次截图
CaptureScreen()'--执行前面自定义函数截图
AddHandler pd.PrintPage, AddressOf Document_PrintPage
pd.Print()
Threading.Thread.sleep(100) ‘ 再加上一个间隔
next
end sub
VB.NET打印编程问题 , 打印机为激光打印机 。打印做得不多,以前做套打时发现,每台打印机定位都不一样,于是每台机子都加了个偏移设置
我的做法在白纸上打上一标尺,和一个上下边距为2CM的交叉点,然后用标尺量这2CM的偏移,设置完后,在这台打印机打印时,就给纸张加个偏移量,打印就正常了 。可能你的原因和我一样 。
另外也想问你一下 , 你这个条码是用什么打的 。早先,我用立象的条码打印机打不干胶,很简单 , 激光打没用过,可能下次我也要用条码打?。?我也用VB.net 。求教.
【vb.net打印机纸张 vbs打印】vb.net打印机纸张的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于vbs打印、vb.net打印机纸张的信息别忘了在本站进行查找喔 。

推荐阅读