怎么用vb.net获取打印机的分辨率(DPI)?

gzchen007 2011-02-22 11:35:13
我用英寸为单位设计了几张发票,数据库里存的是需要在发票上打印的数据的位置坐标信息,
我想请问一下,在打印的时候怎么把英寸的坐标转换为以像素为单位的坐标呢?其中要不要用到打印机的分辨率的(DPI 每英寸上的点数)?如果不用,那么在打印的时候怎么在纸张上定位?用到的话,怎么获取那个打印机的DPI?
...全文
212 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2011-02-22
  • 打赏
  • 举报
回复
System.Management.ManagementClass mc =new ManagementClass( "Win32_Printer ")
System.Management.ManagementObjectCollection mocs = mc.GetInstances();
foreach(ManagementObject mo in mocs)
{
string DriverName=(mo[ "DriverName "]==null)?string.Empty:mo[ "DriverName "].ToString();
string HorizontalResolution=(mo[ "HorizontalResolution "]==null)?string.Empty:mo[ "HorizontalResolution "].ToString();
string VerticalResolution=(mo[ "VerticalResolution "]==null)?string.Empty:mo[ "VerticalResolution "].ToString();
}
xingyuebuyu 2011-02-22
  • 打赏
  • 举报
回复
http://zhidao.baidu.com/question/170555603

Dim wmiSQL As String = "SELECT * FROM Win32_Printer WHERE Default=True"
Dim printers As ManagementObjectCollection = New ManagementObjectSearcher(wmiSQL).[Get]()
For Each printer As ManagementObject In printers
MessageBox.Show(printer.Properties("HorizontalResolution").Value.ToString() & " x " & printer.Properties("VerticalResolution").Value.ToString())
Exit For
Next

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧