vb怎么用打印机打印已有文档(如D盘中的某个word文档)
具体是这样的,D盘中有若干个WORD文档,用VB写一个程序,从输入的代码选择相对应的WORD文档,然后打印出来呵呵,好像有点复杂了,高手,请指导...
具体是这样的,D盘中有若干个WORD文档,用VB写一个程序,从输入的代码选择相对应的WORD文档,然后打印出来
呵呵,好像有点复杂了,高手,请指导 展开
呵呵,好像有点复杂了,高手,请指导 展开
展开全部
让RichTextBox装载Word内容,再用VSPrint打印:
Private Sub Command1_Click()
VSPrinter1.StartDoc
VSPrinter1.Zoom = 100
VSPrinter1.RenderControl = Form1.RichTextBox1.hWnd
With VSPrinter1
'ÉèÖñêÌâ
.FontSize = 16
.FontBold = True
.TextAlign = taCenterMiddle
.Paragraph = "´打印人: ***"
.Footer = "´打印日期: " & Format(Date, "yyyy/mm/dd ") & " 第 " & ipage & "页 ,共" & pages & "页"
.FontBold = True
.FontSize = 10
.TextAlign = taRightTop
.Paragraph = " "
.FontBold = False
.FontSize = 10
End With
VSPrinter1.EndDoc
End Sub
Private Sub Command1_Click()
VSPrinter1.StartDoc
VSPrinter1.Zoom = 100
VSPrinter1.RenderControl = Form1.RichTextBox1.hWnd
With VSPrinter1
'ÉèÖñêÌâ
.FontSize = 16
.FontBold = True
.TextAlign = taCenterMiddle
.Paragraph = "´打印人: ***"
.Footer = "´打印日期: " & Format(Date, "yyyy/mm/dd ") & " 第 " & ipage & "页 ,共" & pages & "页"
.FontBold = True
.FontSize = 10
.TextAlign = taRightTop
.Paragraph = " "
.FontBold = False
.FontSize = 10
End With
VSPrinter1.EndDoc
End Sub
追问
RichTextBox怎么用呢??还有上边有一行代码是乱码
要不你帮我写一个完整的吧,我有多少分都给你
要求是这样:D盘有很多WORD文件,名字为1.doc 2.doc .......
在form里面只有一个TEXTBOXt和一个BUTTON。用户在TEXT里面输入WORD的文件名,按BUTTON就可以打印出来相对应的文件
追答
拉个CommonDialog1控件一个RichTextBox一个Command,VSPrint控件是VSFlexGrid一起的第三方控件,要下载一个,很实用,网上有注册码
Private Sub CmdOpen_Click()
Dim lsFileName As String
Dim lsPath As String
Dim lsName As String
Dim lbApp As Boolean
Dim llCount As Long
'浏览要添加的的文件
CommonDialog1.CancelError = True '取消报错 并且跳出执行!
On Error GoTo err_cancel
CommonDialog1.DialogTitle = "选择要打开的Word文件"
'CommonDialog1.InitDir = App.Path
CommonDialog1.Filter = "Word文件(*.doc)|*.doc"
CommonDialog1.FileName = ""
CommonDialog1.ShowOpen
lsFileName = CommonDialog1.FileName '获取完整路径
lsName = CommonDialog1.FileTitle '只获取文件名
lsPath = Replace$(lsFileName, lsName, "") '获取文件所在的路径
'循环进行处理!判断是否存在打开的word进程 !
lbApp = False
Do While True
On Error Resume Next
Set wordObj = GetObject(, "Word.Application") '用于判断已经打开的word进程
If wordObj Is Nothing Then Exit Do '如果没有找到进程那么就退出循环
If wordObj.Documents.Count = 0 Then '如果是一个空进程就释放
wordObj.Quit
Set wordObj = Nothing
Else
For llCount = 1 To wordObj.Documents.Count '这个应用就是,手工打开文件的应用!
If Err.Number = 0 Then '有Word已经打开
If wordObj.Documents(llCount).FullName = lsFileName Then '判断是否有要打开的进程
Text1.Text = wordObj.Documents(llCount).Content.Text '这个是对文件的操作
GoTo endSub
End If
End If
lbApp = True
Next
End If
If llCount 0 Then Exit Do '所有打开的里面没有要打开的文件
Loop
Err.Clear
If lbApp = False Then
Set wordObj = CreateObject("Word.Application") '创建word应用类
wordObj.Visible = False
wordObj.Documents.Open (lsFileName)
Text1.Text = wordObj.ActiveDocument.Content.Text
wordObj.Quit
Set wordObj = Nothing
Else
wordObj.Documents.Open (lsFileName) '直接在原来的应用上打开文件
Text1.Text = wordObj.ActiveDocument.Content.Text
wordObj.ActiveDocument.Close (False) '关闭打开的文件'但是不关闭应用
End If
endSub:
MsgBox "成功"
Exit Sub
err_cancel:
MsgBox "确认退出吗?"
End Sub
展开全部
你和装有OFFICE WORD
dim wdapp
set wdapp=createobject("word.application")
dim doc
set doc = wdapp.documents.add("d:\abc.doc")
wdapp.printout
doc.close
wdapp.quit
以上代码也可以用记事本保存为VBS文件,可以执行.
dim wdapp
set wdapp=createobject("word.application")
dim doc
set doc = wdapp.documents.add("d:\abc.doc")
wdapp.printout
doc.close
wdapp.quit
以上代码也可以用记事本保存为VBS文件,可以执行.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个操作必须电脑已安装office,如果是这样
为什么非要用vb呢,直接在word里面写个宏程序vba就行
为什么非要用vb呢,直接在word里面写个宏程序vba就行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询