你曾今碰到“用VB实现一个打印WORD文档功能。
。
。
”这个问题...
VB.NET(2005)中打印WORD文档(.doc)有两种方法可以完成,无论哪一种,你都得安装office,呵呵。
Imports Microsoft.Office.CoreImports Word = Microsoft.Office.Interop.Word第一种,允许用户更换打印机等设置,这是很重要的。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click PrintDialog1.AllowCurrentPage = False '不打印当前页 PrintDialog1.AllowSelection = False '不允许打印部分页等 PrintDialog1.AllowSomePages = False If PrintDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then Dim poApp As Word.Application Dim poDoc As Word.Document poApp = New Word.Application poApp.Visible = False poApp.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone poDoc = poApp.Documents.Open("d:\1.doc")poApp.WordBasic.FilePrintSetup(Printer:=PrintDialog1.PrinterSettings.PrinterName, DoNotSetAsSysDefault:=1) 'DoNotSetAsSysDefault:=0就会修改默认打印机 ''poApp.ActivePrinter = PrintDialog1.PrinterSettings.PrinterName poApp.PrintOut()poDoc.Close(Word.WdSaveOptions.wdDoNotSaveChanges) 'clean up poDoc = Nothing 'close word这里有个极其重要的参数WdSaveOptions,它有三个值:wdDoNotSaveChanges、wdDoNotSaveChanges和wdPromptToSaveChanges。
当选择wdDoNotSaveChanges时,文档就会来不及输出到打印机而关闭,当选择wdPromptToSaveChanges时,word程序有时就会无法退出!poApp.Quit()语句也是不可取的,因为默认的是wdPromptToSaveChanges。
poApp.Quit(Word.WdSaveOptions.wdPromptToSaveChanges) poApp = Nothing End If End Sub第二种,是调用windows打开的方式,很快,但是不幸的是不能更换打印机。
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim MyProcess As New Process MyProcess.StartInfo.CreateNoWindow = False MyProcess.StartInfo.Verb = "print" MyProcess.StartInfo.FileName = "d:\1.doc" MyProcess.Start() MyProcess.WaitForExit(10000) MyProcess.CloseMainWindow() MyProcess.Close() End Sub***********************VB6下使用的方法:Private Sub Form_Load()Set Word1 = CreateObject("word.application")Word1.Documents.Open App.Path & "\1.doc"Word1.Visible = TrueWord1.PrintOutWord1.Application.QuitEnd Sub
不需要WordApp.printout打印全部,可以选择打印
。
。
。
。
。
Set Word = WordApp.Documents.Open(current_file)WordApp.PrintOut Pages:="3"Word.CloseWordApp.quitSet WordApp = NothingSet Word = Nothing。
。
。
。
经过试验,程序打印的还是全部,WordApp.PrintOut Pages:="3"这个语句没起打印第三页的作用! Sub BreakOnPage()' Used to set criteria for moving through the document by page.Application.Browser.Target = wdBrowsePageFor i = 1 To ActiveDocument.BuiltInDocumentProperties("Number of Pages")'Select and copy the text to the clipboardActiveDocument.Bookmarks("\page").Range.Copy' Open new document to paste the content of the clipboard into.Documents.AddSelection.Paste' Removes the break that is copied at the end of the page, if any.Selection.TypeBackspaceChangeFileOpenDirectory "C:\"DocNum = DocNum + 1ActiveDocument.SaveAs FileName:="test_" & DocNum & ".doc"ActiveDocument.Close' Move the selection to the next page in the documentApplication.Browser.NextNext iActiveDocument.Close savechanges:=wdDoNotSaveChangesEnd Sub
vb如何进行word页面设置的代码
'工程引用 Microsoft Word 12.o Objedt Library Private Sub Command1_Click()Dim wd As New Word.Applicationwd.Documents.Add DocumentType:=wdNewBlankDocumentWith wd.Selection.Font.Spacing = 2.ParagraphFormat.Alignment = wdAlignParagraphCenter '居中.Font.Size = 16 '字号.Font.Name = "宋体".Font.Bold = True '粗体.TypeText "这是一个VB编辑word的测试。
" '输出字符.Font.Bold = False.TopMargin = CentimetersToPoints(1.27) '页面上边距.BottomMargin = CentimetersToPoints(1.27) '页面下边距.LeftMargin = CentimetersToPoints(1.27) '页面左边距.RightMargin = CentimetersToPoints(1.27) '页面右边距End Withwd.Visible = Truewd.ShowMeSet wd = NothingEnd Sub
使用javascript怎样操作word,对word进行页面设置?包括怎么设置页...
这个只能在IE上用,使用jscript。
var WordApp=new ActiveXObject("Word.Application"); var wdCharacter=1 var wdOrientLandscape = 1 WordApp.Application.Visible=true; var myDoc=WordApp.Documents.Add(); WordApp.ActiveDocument.PageSetup.Orientation = wdOrientLandscape WordApp. Selection.ParagraphFormat.Alignment=1 //1居中对齐,0为居右 WordApp. Selection.Font.Bold=true WordApp. Selection.Font.Size=20 WordApp. Selection.TypeText("我的标题"); WordApp. Selection.MoveRight(wdCharacter); //光标右移字符 WordApp.Selection.TypeParagraph() //插入段落 相当于br WordApp. Selection.Font.Size=12 WordApp. Selection.TypeText("副标题"); //分行插入日期 WordApp.Selection.TypeParagraph() //插入段落 var myTable=myDoc.Tables.Add (WordApp.Selection.Range, 8,7) //8行7列的表格 var aa = "我的列标题" for (i= 0;i<7;i++) { with (myTable.Cell(1,i+1).Range) { font.Size = 12; InsertAfter(aa); ColumnWidth =4; ParagraphFormat.Alignment =1; //设置对齐方式 水平对齐 } } for (i =0;i<7;i++) { for (n =0;n<7 ;n++) { with (myTable.Cell(i+2,n+1).Range) { font.Size = 12; InsertAfter("bbbb"); ParagraphFormat.Alignment =1; //设置对齐方式 水平对齐 } } } myDoc .saveAs("d:\\gc.doc"); //保存word
java怎么实现在线打开word时给word加水印?
package com.ymo.word; import com.jacob.activeX.ActiveXComponent; import com.jacob.com.ComThread; import com.jacob.com.Dispatch; import com.jacob.com.Variant; public class TestJacobWord { private ActiveXComponent wrdCom = null; private Dispatch doc = null; private Dispatch activeDoc = null; private Dispatch docSelect = null; private Dispatch docs = null; private static TestJacobWord instance = null; private String docName = ""; public static TestJacobWord getInstance() { if (instance == null) { instance = new TestJacobWord(); } return instance; } private boolean initWord() { boolean flag = false; ComThread.InitSTA(); wrdCom = new ActiveXComponent("word.Application"); try { docs = wrdCom.getProperty("Documents").toDispatch(); wrdCom.setProperty("Visible", new Variant(false)); flag = true; } catch (Exception e) { flag = false; e.printStackTrace(); } return flag; } private void createNewDocument() { doc = Dispatch.call(docs, "Add").toDispatch(); docSelect = Dispatch.get(wrdCom, "Selection").toDispatch(); } private void getActiveDoc() { activeDoc = wrdCom.getProperty("ActiveWindow").toDispatch(); System.out.println(activeDoc.getProgramId()); } private void openDocument(String docPath) { if (this.doc != null) { closeDocument(); } this.doc = Dispatch.call(docs, "Open", docPath, new Variant(false),new Variant(false)).toDispatch(); docSelect = Dispatch.get(wrdCom, "Selection").toDispatch(); } private void closeDocument() { if (doc != null) { Dispatch.call(doc, "Save"); Dispatch.call(doc, "Close", new Variant(true)); doc = null; } } private void setImgWaterMark(String waterMarkPath) { Dispatch activePan = Dispatch.get(activeDoc, "ActivePane").toDispatch(); Dispatch view = Dispatch.get(activePan, "View").toDispatch(); Dispatch.put(view, "SeekView", new Variant(9)); Dispatch headfooter = Dispatch.get(docSelect, "HeaderFooter").toDispatch();// 取得图形对象 Dispatch shapes = Dispatch.get(headfooter, "Shapes").toDispatch(); Dispatch pic = Dispatch.call(shapes, "AddPicture", waterMarkPath).toDispatch(); Dispatch.call(pic, "Select"); Dispatch.put(pic, "Left", new Variant(10)); Dispatch.put(pic, "Top", new Variant(200)); Dispatch.put(pic, "Width", new Variant(150)); Dispatch.put(pic, "Height", new Variant(80)); Dispatch.put(view, "SeekView", new Variant(0)); } public void setTextWaterMark(String waterMarkStr) { Dispatch activePan = Dispatch.get(activeDoc, "ActivePane").toDispatch(); Dispatch view = Dispatch.get(activePan, "View").toDispatch(); Dispatch.put(view, "SeekView", new Variant(9)); Dispatch headfooter = Dispatch.get(docSelect, "HeaderFooter").toDispatch(); Dispatch shapes = Dispatch.get(headfooter, "Shapes").toDispatch(); Dispatch selection = Dispatch.call(shapes, "AddTextEffect",new Variant(9), waterMarkStr, "宋体", new Variant(1),new Variant(false), new Variant(false), new Variant(0),new Variant(0)).toDispatch(); Dispatch.call(selection, "Select"); Dispatch shapeRange = Dispatch.get(docSelect, "ShapeRange").toDispatch(); Dispatch.put(shapeRange, "Name", "PowerPlusWaterMarkObject1"); Dispatch textEffect = Dispatch.get(shapeRange, "TextEffect").toDispatch(); Dispatch.put(textEffect, "NormalizedHeight", new Boolean(false)); Dispatch line = Dispatch.get(shapeRange, "Line").toDispatch(); Dispatch.put(line, "Visible", new Boolean(false)); Dispatch fill = Dispatch.get(shapeRange, "Fill").toDispatch(); Dispatch.put(fill, "Visible", new Boolean(true));// 设置水印透明度 Dispatch.put(fill, "Transparency", new Variant(0.5)); Dispatch foreColor = Dispatch.get(fill, "ForeColor").toDispatch(); Dispatch.put(foreColor, "RGB", new Variant(16711620)); Dispatch.call(fill, "Solid");// 设置水印旋转 Dispatch.put(shapeRange, "Rotation", new Variant(315)); Dispatch.put(shapeRange, "LockAspectRatio", new Boolean(true)); Dispatch.put(shapeRange, "Height", new Variant(117.0709)); Dispatch.put(shapeRange, "Width", new Variant(468.2835)); Dispatch.put(shapeRange, "Left", new Variant(-999995)); Dispatch.put(shapeRange, "Top", new Variant(-999995)); Dispatch wrapFormat = Dispatch.get(shapeRange, "WrapFormat").toDispatch();// 是否允许交叠 Dispatch.put(wrapFormat, "AllowOverlap", new Variant(true)); Dispatch.put(wrapFormat, "Side", new Variant(3)); Dispatch.put(wrapFormat, "Type", new Variant(3)); Dispatch.put(shapeRange, "RelativeHorizontalPositi on", new Variant(0)); Dispatch.put(shapeRange, "RelativeVerticalPosition", new Variant(0)); Dispatch.put...
Microsoft Access 窗体中打印预览崩溃
怎样学习函数公式 这是很多新手最想知道的事,函数那么多,要从哪儿学起呢。
我个人谈点小体会: 1、“学以致用”,用才是目的——就是你要和将要用到的东西先学。
比如你根本用不上财务、工程函数,没必要一下子就去看那些专业性很强的东西(嘿嘿,那些我基本不会),这样就容易入门了。
基本上函数用得最多的逻辑判断和查找和引用这2类函数了。
先不要急于学会“数组”,自己常用函数的普通用法有个大致的用法了解之后再去看它的数组用法。
2、善于搜索,网上很多高手很多的经典学习案例!最佳学习方法:搜一下,能找到更多的解答;而且锻炼了自己的表述能力。
3、除了“求助”式学习,还要“助人”式的学习,只要有时间,助人助己,有了越来越多的“求助”者给你免费提供了练习的机会,练得多了再综合各种思路的比较,自己就有了一些想法,你的水平肯定与日俱增。
4、一口气吃不成胖子,多记一些学习的体会,日积月累,你就是高手了。
另外,到“优秀会员园地”瞧瞧,不少学习心得哦。
excel需要掌握的很多,主要就是查找,引用,汇总等的! 我不知道你需要什么,现在救简单说几个技巧吧,你看着好值得学,那发信给我!谢谢 1、如何更改excel默认的行列标签的颜色? 桌面-属性-外观-项目-高级_已选定的项目,设置颜色。
2、系统提供的排序功能最多只能同时依据三个关键字来进行。
如果需要依据三个以上的条件来排序,该如何实现? 答:虽然系统一次最多只能同时对三个关键字来排序,但是我们可以利用设置排序关键字的优先级,通过多次排序来实现关键字大于3个以上的排序。
具体操作如下:首先打开工作表。
单击“数据”菜单中的“排序”项,依次在“主要关键字”、“次要关键字”、“第三关键字”中选择优先级最低的几个排序关键字,然后执行排序操作。
接下来再依次选择优先级较高的几个关键字,进行2次排序。
这样直到最高优先级的关键字排序完成为止,就可以实现了对三个以上关键字的排序操作了。
3、若A1-A6中有大于0和小于0的数,请问怎样将其中小于0的数所在的行自动删除。
for i=6 to 1 step -1 if cells(i,1)next i 4、请问:INDEX(data,,1)中的data是什么意思 是定义的名称,具体是什么要看文件。
按ctrl+F3看看。
5、快速插入行(列)的快捷键,CTrl+键盘+ 6、桌面上的"网上邻居"没有了,在我的电脑找到了,移动到桌面只是个快捷方式, 在桌面点右键选属性,点“桌面”“自定义桌面”把“网上邻居”前打上勾,确定 7、如何获取一个月的最大天数? :"=DAY(DATE(2002,3,1)-1)"或"=DAY(B1-1)",B1为"2001-03-01 8、数据区包含某一字符的项的总和,该用什么公式 =sumif(a:a,"*"&"某一字符"&"*",数据区) 9、能否在EXCEL中定时打印? Private Sub Workbook_Open() Application.OnTime "9:30:00", "wlqPrint" '将"9:30:00"改为要自动打印的时间 End Sub Sub wlqPrint() '打印 ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True End Sub 10、比方说要求得g在图示区域中所在列号,如何表达? 数组公式,按ctrl+shift+enter结束。
=MAX((A1:F4="g")*COLUMN(A1:F4)) 11、勾怎么输入 按住ALT键输入41420后放开ALT键√ 12、将单元格中的数全部变成万元表示(???) 自定义单元格格式:0"."0, 或:0!.0000 13、自定义名称中的引用范围中可以直接粘贴公式 从编辑栏里Ctrl+C复制,然后Ctrl+V粘贴 14、如果一个单元格中既有数字又有字母,怎么提取其中的数字呢? Function getnumber(rng As String) As String '自定义函数作用:提取当前单元格中的数字 Dim mylen As Integer Dim mystr As String mylen = Len(rng) For I = 1 To mylen mystr = Mid(rng, I, 1) If Asc(mystr) >= 48 And Asc(mystr) getnumber = getnumber & mystr End If Next I End Function 15、用VB制作EXCEL作品封面 本人在论坛上发了一个EXCEL作品封装实例后,有很多人来信询问怎样用VB打开EXCEL,并且带有启动封面,现本人将过程 底细说出来,希望给大家起到一个抛砖引玉的作用。
一、新建一个文件夹,该文件夹主要是用来装EXCEL工作簿、VB编译的可执行文件、图标文件及帮助文件用的。
二、打开VB,新建一个标准EXE。
三、1、对form1的设置: Borderstyle=0-none 去掉form1的标题栏 Icon 设定图标 StartupPositio=2 将启动封面始终悬挂在屏幕中部 2、添加一个Timer控件,将其Interval设为1000,双击Timer控件出现代码窗口,输入如下代码: Private Sub Timer1_Timer() Dim Exl As Object Set Exl = CreateObject("Excel.Application") Exl.Workbooks.Open (App.Path & "\" & "DZB.xls") Exl.Visible = True Unload Me End Sub 3、点击文件--生成EXE文件,将其保存到步骤一中的文件夹中去。
大功告成! 推荐使用图标编辑工具AXIcons制作图标文件! 16、邮件合并一步一步学 邮件合并一步一步学: 软件OFFICE2003,EXCEL2003 1、在excel2003中建一个数据表(联系表.xls)如:姓名,身份证号,其它编号,职业,联系方式,输入相应数据,保存; 如想在一张页面中打印多个人的信息,就...
转载请注明出处51数据库 » 打印 word .visible = f
自古悲情最销魂