如何让OleContainer能打印? (200分)

  • 主题发起人 主题发起人 ego
  • 开始时间 开始时间
E

ego

Unregistered / Unconfirmed
GUEST, unregistred user!
我用TOleContainer放置了一个Word对象,怎样让OleContainer能够打印?或者能够把OleContriner中的内容导到Word中也行。
 
OleContainer1.OleObject.printout;
 
谢谢!但这样没法预览,而且不能控制打印格式,有没有更好的办法?
 
自己在VBA中调试一下:
可以得到如下语句:
With ActiveDocument.PageSetup
.LineNumbering.Active = False
.Orientation = wdOrientPortrait
.TopMargin = CentimetersToPoints(2)
.BottomMargin = CentimetersToPoints(2)
.LeftMargin = CentimetersToPoints(2)
.RightMargin = CentimetersToPoints(2)
.Gutter = CentimetersToPoints(0)
.HeaderDistance = CentimetersToPoints(1.5)
.FooterDistance = CentimetersToPoints(1.75)
.PageWidth = CentimetersToPoints(21)
.PageHeight = CentimetersToPoints(29.7)
.FirstPageTray = wdPrinterDefaultBin
.OtherPagesTray = wdPrinterDefaultBin
.SectionStart = wdSectionNewPage
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.VerticalAlignment = wdAlignVerticalTop
.SuppressEndnotes = False
.MirrorMargins = False
.TwoPagesOnOne = False
.GutterPos = wdGutterPosLeft
.LayoutMode = wdLayoutModeLineGrid
End With
你自己调试一下!!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=737517
 
to heqian:
感谢你再次回答。
你上面这段代码应该是用CreateOLEObject创建的对象来执行的,但我想是用TOleContainer来实现预览功能。我试了一下,用Ole.OleObject.PrintPreview不行,系统报告说“所需视图无效”。
还有,OleContainer保存的文件用Word打开后全是乱码,请问有什么方法可以解决吗?
谢谢!
 
没办法,只好用Servers了 :(
我看了一下delphi的例子, 发现TOleContainer居然是通过剪贴板来与Servers交换数据的!这未免也太......那个了一点吧?
但TOleContainer用SaveToFile生成的文件,Word一打开都是乱码......
 
我在程序里是混合用这些东西的!!
新建文档采用CreateOleObject,通过VBA进行查找、替换、设置书签等操作!
浏览文档采用OleContainer
修改文档采用servers——WordApplication;
 
后退
顶部