用VB.Net 编程时如何获得打印机的物理边距
网络上找到这个比较全面,你试一下,我记得以前也是这么设置的。
创新互联是一家专注于成都网站建设、成都网站制作与策划设计,常熟网站建设哪家好?创新互联做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:常熟等地区。常熟做网站价格咨询:18982081108
int GetDeviceCaps( HDC hdc, int nIndex);
其中,hdc用来指定设备环境句柄,nIndex用来指定要获取的参量索引,对于打印机而言,它常常需要下列的预定义值:
LOGPIXELSX 打印机水平分辨率
LOGPIXELSY 打印机垂直分辨率
PHYSICALWIDTH 打印纸的实际宽度
PHYSICALHEIGHT 打印纸的实际高度
PHYSICALOFFSETX 实际可打印区域的物理左边距
PHYSICALOFFSETY 实际可打印区域的物理上边距
下面的函数代码就是用来设置页边距,并且还计算页面的物理边距:
void CEx_Prn1View::SetPageMargin(CDC *pDC, CPrintInfo *pInfo, int l, int t, int r, int b)
// l, t, r, b分别表示左上右下边距, 单位为0.1mm
{
int nOldMode = pDC- GetMapMode();
pDC- SetMapMode(MM_LOMETRIC);
// 计算一个设备单位等于多少0.1mm
double scaleX = 254.0 / (double)GetDeviceCaps(
pDC- m_hAttribDC, LOGPIXELSX);
double scaleY = 254.0 / (double)GetDeviceCaps(
pDC- m_hAttribDC, LOGPIXELSY);
int x = GetDeviceCaps(pDC- m_hAttribDC,
PHYSICALOFFSETX);
int y = GetDeviceCaps(pDC- m_hAttribDC,
PHYSICALOFFSETY);
int w = GetDeviceCaps(pDC- m_hAttribDC,
PHYSICALWIDTH);
int h = GetDeviceCaps(pDC- m_hAttribDC,
PHYSICALHEIGHT);
int nPageWidth = (int)((double)w*scaleX + 0.5);
// 纸宽,单位0.1mm
int nPageHeight = (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);
CRect rcTemp = pInfo- m_rectDraw;
rcTemp.NormalizeRect();
m_nPhyRight = nPageWidth - rcTemp.Width() -
m_nPhyLeft; // 物理右边距,单位0.1mm
m_nPhyBottom = nPageHeight - rcTemp.Height() -
m_nPhyTop; // 物理下边距,单位0.1mm
// 若边距小于物理边距,则调整它们
if (l m_nPhyLeft) l = m_nPhyLeft;
if (t m_nPhyTop) t = m_nPhyTop;
if (r m_nPhyRight) r = m_nPhyRight;
if (b m_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程序如何实现表格填写和打印
一般情况下先用EXCEL做好一个样表文件,设定好打印区域和样式,需要填内容的时候,先程序复制一个样表文件,然后调用API打开表格填写内容并打印,如果想用API来实现调整模板和打印预览,可能比较困难,而且很抽象,个人觉得费时费力效果还不一定理想
vb点虐 获取excel页面高度
1 打开Excel dim myexcelas new Excel.Application() myexcel.visible=true
2 添加新的工作簿myexcel.Workbooks.add()
3 设定第二个工作表为活动工作表myexcel.worksheets(2).Acivate()
4 打开指定的Excel文件myexcel.workbooks.open(“c:\my.xls”)
5 显示Excel窗口myexcel.visible=true
6 更改Excel的标题栏myexcel.caption=“欢迎,欢迎!”
7 为Excel的单元格赋值myexcel.cells(1,4).value=100 此语句使Excel当前工作表的第一行第四列,即D1单元格等于100, 也可以这样写: myexcel.Range(“D1”).value=100
8 设置指定列的宽度(单位:字符个数)myexcel.ActiveSheet.colums(1).columnwidth=20 设定当前工作表第1列的宽度为20
9 设置指定行的高(单位:磅)myexcel.ActiveSheet.rows(1).rowHeight=1/0.035 1磅 =0.035厘米设置第1行的高度为1CM
10 插入分页符 myexcel.Activesheet.rows(20).pagebreak=1在第20行前插入分页符
11 删除分页符myexcel.Activesheet.columns(20).pagebreak=0 在第20列前删除分页符
12 指定边框线的宽度myexcel.Activesheet.range(“B3:D3”).borders(1).weight=3 其中borders参数指定单元格边框的位置:1:左 2:右 3:顶 4:底 5:斜\ 6:斜/
13 指定边框线条的类型 myexcel.Activesheet.range(“B1:D3”).borders(2).linestyle=1此语句将当前工作表的B1:D3单元格的右边框设置为实线 linestyle参数: 1:细实线 2:细虚线 3:点虚线 4:双细实线
14 设置页脚myexcel.activesheet.pagesetup.centerfooter=“第p页” 注意:设置页眉页脚时要保证计算机上装有打印机,否则出错!
15 设置页眉myexcel.activesheet.pagesetup.centerfooter=“第p页”
16 设置页眉到顶断距离为2cmmyexcel.Activesheet.pagesetup.Headermargin=2/0.035
17 设置页脚到底端距离为2cmmyexcel.Activesheet.pagesetup.Footermargin=2/0.035
18 设置顶边边距为2cmmyexcel.Activesheet.pagesetup.topmargin=2/0.035
19 设置底边边距为2cmmyexcel.Activesheet.pagesetup.Bottommargin=2/0.035
20 设置左边边距为2cmmyexcel.Activesheet.pagesetup.Leftmargin=2/0.035
21 设置右边边距为2cmmyexcel.Activesheet.pagesetup.Rightmargin=2/0.035
22 设置页面水平居中myexcel.activesheet.pagesetup.CenterHorizontally=true
23 设置页面垂直居中myexcel.activesheet.pagesetup.Centervertically=true
24 设置页面纸张大小 (1,窄行8.511 ;39 ,宽行1411) myexcel.activesheet.pagesetup.papersize=1
25 打印单元格网格线 myexcel.activesheet.pagesetup.PrintGridlines=true
26 复制整个工作表 myexcel.activesheet.Usedrange.Copy
27 复制指定区域 myexcel.activesheet.range(“a1:b5”).Copy
28 粘贴 myexcel.worksheets(“sheet2”).range(“A1”).PasteSpecial
29 在第2行前插入一行 myexcel.activesheet.rows(2).Insert
30 在第2列前插入一列 myexcel.Activesheet.Columns(2).Insert
31 合并 C4:D4 单元格 myexcel.Activesheet.Range(“C4:D4”).Merge()
32 自动调整第2列列宽 myexcel.activesheet.Columns(2).AutoFit
33 设置字体myexcel.Activesheet.cells(2,1).font.name=“黑体”
34 设置字体大小myexcel.Activesheet.cells(2,1).font.size=25
35 设置字体为斜体 myexcel.Activesheet.cells(2,1).font.Italic=true
36 设置字体为粗体 myexcel.Activesheet.cells(2,1).font.Bold=true
37 清除单元格内容myexcel.activesheet.cells(2,1).ClearContents
38 打印预览工作表myexcel.Activesheet.PrintPreview
39 打印工作表 myexcel.Activesheet.Printout
40 工作表另存为myexcel.ActiveWorkbook.saveas(“C:\book2.xls”)
41 放弃存盘 myexcel.ActiveWorkbook.saved=false
42 关闭工作簿 myexcel.Workbooks.close
43 退出 Excel myexcel.quit
44 纸张横向:myexcel.activesheet.PageSetup.OrientaTion=2(1纵向)
45 单元格居中:cells(2,1).HorizontalAlignment=Excel.XlHAlign.xlHAlignCenter 水平方向cells(2,1).VerticalAlignment=Excel.XlVAlign.xlVAlignCenter 垂直方向
打开CSDN APP,看更多技术内容
VB调用Excel软件实现打印预览功能
摘要:VB源码,报表打印,打印预览VB调用Excel软件实现打印预览功能,可以插入折线图,VB打印预览功能示例源码,分享给大家参考。
用vb操作EXCEL打印报表
最近使用vb来打印报表,打印出来的EXCEL一直无法上传到ftp 反复多次问题都没解决, 200 PORT command successful. Consider using PASV. 问题出在这,由于win10的防火墙的原因,关闭防火墙后问题得到解决. 转载于:...
继续访问
VB操作excel 格式设置及打印页面设置(精简)
langue:VB Set ExcelApp = CreateObject("Excel.Application") ’创建资源,建立连接 Set ExcelBook = ExcelApp.Workbooks.Open(“d:\pipo\index.htm") Set ExcelSheet = ExcelBook.Worksheet...
继续访问
vb点虐 excel操作:填充人事档案表并打印
节选自:《Visual Basic.Net 循序渐进》【例 21.7】【项目:code21-007】填充人事档案表并打印。 本例使用到的Excel文件为:职员信息登记表.xlsx,如下图所示: 图21-10 职员信息登记表 窗体设计如下图所示(注意:为了演示方便,已经填充了数据): 图21-11 窗体设计 在本例中还需要掌握的知识: 1、插入图片到指定位置 Worksheet.Shapes.AddPicture(Filename, LinkToFile, SaveWithDocumen
继续访问
vb点虐 操作Excel常用命令
转载: 首先,须在项目里引用: 添加引用-Com-Microsoft Excel 9.0 Object Library (这是EXCEL2000) 1 打开Excel: dim myexcel as new Excel.Application() myexcel.visib...
继续访问
vb点虐 如何实现报表打印_Excel如何实现分类别打印?创建组轻松实现
有朋友咨询个关于Excel打印数据问题,他的需求是这样的:下表中是某公司人员信息表,现在领导要求将表格分部门打印出来,每位员工核对个人信息并签字。需求很明确,就是将相同部门的人员打印到一张纸上。打印很简单,难点在于如何按每个部门去打印?如果部门较少的话可以将不同部门复制到不同插页中,再进行打印;但是如果部门较多的话,这种办法实在不可取;有小伙伴表示可以利用VBA技术将部门拆分到各个插页,在进行打印...
继续访问
最新发布 vb点虐 教程 11-1 打印组件 3 PageSetupDialog
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 本节谈谈另外一个有关打印的对话框:PageSetupDialog,页面设置对话框 实际我们是通过这个对话框获得PageSetting,关于PageSetting在上一节有部分介绍,请参看 vb点虐 教程 11-1 打印组件 PrintDialog 2 注意的是,使用PageSetupDialog需要绑定一个PrintDocument,在PageSetupDialog的Document属性处
继续访问
VB.NET使用EXCEL常见操作
首先,须在项目里引用: 添加引用Microsoft.Office.Interop.Excel Imports Excel = Microsoft.Office.Interop.Excel 1 打开Excel: Dim myexcel as new Excel.Application() myexcel.visible=true 2 添加新的工作簿: myexcel.Workbooks.ad
继续访问
【VB Excel】VB 操作Excel基本步骤
VB操作EXCEL,实现数据读取 1、定义Excel操作变量 Dim objExcelFile As Excel.Application Dim objWorkBook As Excel.Workbook Dim objImportSheet As Excel.Worksheet 2、打开Excel进程,并打开目标Exc...
继续访问
vba代码编程800例_如何设置Excel打印格式,学会这个VBA对象就可以随心所欲
NO.1 Excel如何设置打印格式使用vba可以做打印格式处理,如何做一个漂亮的打印页面,不外乎要设置打印表格的边框、版式、页眉、页角等等。那么怎样设置这些格式呢?NO.2 PageSetup对象vba编程用到Pagesetup对象,对表格打印进行设置。PageSetup对象有许多属性,下面图片里列出了大部分常用的属性,可以对照进行设置。具体方法下面举个例子来展示一下最终效果。PageSetup...
继续访问
vb点虐 操作excel文件
[转自] vb点虐 操作excel文件 要求将数据显示在Excel表中,并且要设好数据格式。虽说如此,真正实现了自己的功能,还是费了不少时间。相信还是有很多与我相似的人需要实现这种功能。那就做个小结吧。不妥之处,请指正哦。 1.添加引用–com—microsoft excel 11.0 object library 2在需要访问excel的过程中定义 dim exapp as excel.a
继续访问
VB点虐 使用PrintForm打印窗体
在VS2010中内置了了一个PowerPacks的扩展包,果然很好用啊,可以直接打印窗体内容 先从"工具箱"中拖一个PrintForm到设计好的窗体中 然后在窗体里加了个打印的按钮,对应代码如下 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.
继续访问
热门推荐 开源:.NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现与应用(2)
!--google_ad_client = "pub-0022674553583619";google_ad_width = 728;google_ad_height = 90;google_ad_format = "728x90_as";google_ad_type = "text_image";google_ad_channel ="";google_color_
继续访问
vb点虐 设置打印纸张与页边距_机关公文格式设置规范(最新整理版)
本方法根据《党政机关公文格式国家标准》(GB/T9704-2012)制定。具体内容如下:一、办公软件要求适用于微软OFFICE—WORD文字处理软件。二、页面设置1.选择“文件”——“页面设置”选择“页边距”附签,上:3.7厘米,下:3.5厘米,左:2.8厘米,右:2.6厘米。2.选择“纸张”附签,“纸张大小”设成“A4”。3.选择“版式”附签,将“页眉和页脚”设置成“奇偶页不同”,在该...
继续访问
VB.NET EXCEL 操作
VB怎么设置excel打印时水平居中
ActiveSheet.PageSetup.CenterHorizontally = True '设置水平居中
ActiveSheet.PageSetup.CenterVertically = False '设置垂直居中
楼主自己试一下吧。
名称栏目:vb点虐 打印区域 vb 打印输出
本文URL:http://lswzjz.com/article/ddeeihi.html