应该算比较难吧:1.word文档转成图片 2.在word图片进行画图式批阅,支持undo或橡皮擦 .在线 100分。(100分)

  • 主题发起人 主题发起人 Boblee
  • 开始时间 开始时间
B

Boblee

Unregistered / Unconfirmed
GUEST, unregistred user!
问题1 :怎么转,提供一下思路也可以,如果有样例,分肯定给定了。:)
问题2:我想到用两个image,一个放word图片,一个放在其上透明的,遇到的问题是闪得没法
让人忍受。但就用一张图片,undo及橡皮擦功能怎么样实现,是不是每画一次就将上一闪保存?
这样是不是很耗资源?如果用橡皮擦,那怎么才能不破坏word图片?
 
请提供问题2的源码
 
1. 直接转换比较困难,但可以使用虚拟打印机,一般地,TIFF打印机比较常见,可将任意
可打印资料转换为TIFF图象.
2. 既然已经转换为TIFF图象了,使用映像程序带的那几个Kodak图象控件就可以实现你
的要求.
 
To qmwuu:
问题2的源码是很简单的:在FORM上放一个ScrollBox,再在其中放个Image,下面的image显示
word文档图片,上面的image是空的,但透明,大小与下面的image一样 ,在mouse事件中画线,
doublebuffer设置为true。这样我开始画时,一动鼠标整个图片区就闪得不得了。
 
To Axe:
虚拟打印机我第一次接触,还不是很有概念,你说的对,其实只要能转换成一种图片格式
就可以了,至于最后是BMP还是JPG这都好实现,因为这已到图片之间互相转换的层面了。
能否提供类似的例子,主要能让我理解:1.虚拟打印机能在程序中虚拟的建还是需要客户
人为的建,如果需要客户人为的建,那就不行了。 2.有了虚拟打印机后,是否将word文档输出
到它,接着怎么才能转换成TIFF及如何得到转换好的TIFF?
 
1.用什么办法都可以把word文档在你的窗体上显示出来,你只要让它满窗口显示,然后
调用getFormImage就可以把它转换成图片格式了
2。不要用两个image,你直接就在word的图片上面画,还闪烁么?
3。至于别的功能,比如undo,你可以在一个不显示的玩艺上面画,就相当于留备份了
 
对于系统而言,虚拟打印机与物理打印机没有区别,一般的,虚拟打印机都有自己的安装
程序,当然,你也可以把它跟你自己的安装程序整合在一起。有了虚拟打印机之后,可以
使用Delphi的Office控件控制Word将文档输出到打印机,虚拟打印机把它转换成TIFF之后,
会保存在一个设置好的路径下。可以去http://www.informatik.com/tiffwork.html下载一
个虚拟打印机的试用版。
 
To lvxq:
1.你说的满窗口是什么意思?但我想这不可能做到:如果我的word文档有20页,怎么可能在一
屏上显示完?还有,我用的是ACTIVEFORM,需要将图片放在IE中,这样getFormImage能得到什么样
的图片?
2.直接画当然没问题,带我需要的事如果画错了想擦掉,用一个image是不是将word图片的内容也删除了?
这也是我一开始想到用两个image的原因。
3.什么是不显示的玩艺?:)
 
To Axe:
谢谢你,但这个不是很理想。我先试试看。
 
我说的是满窗口,不是满屏幕就是这意思,你把word文档按一页一页显示在form上,
可以做到么?,然后把窗口的大小调整到你word一页的大小,调用哪个函数,你就可以
得到图片,你甚至可以新开一个窗口进行,而且你可以不需要调用这个窗口的show函数
来显示它
activeform跟普通的form好像没什么区别,应该可以用的
不显示的玩艺就是比如你可以用一个image,在它里面保留你想保存,但是又不用
老老实实显示到窗口里的东西,比如你最原始的word,所以我的意思是这样,
你保存最原始的word,保存一个image,里面只包含你画上去的内容,这些都可以不显示,
然后把这两个image合并后的东西显示在窗体上?理解了么?

 
理解是理解?但要实现难度不小。:) word文档的显示就是一个大问题?用ole可以显示,但
在ole中的也能抓下来吗?我试试先。先谢谢你喽。
 
问题:1.word文档转成图片 ,可以使用VBA代码实现。。。
可以解决,晚上或者明天给你具体实现[:D]
 
VBA代码如下:
该示例将活动文档的内容复制为图片,并将其作为图片粘贴到文档的结尾。

Sub CopyPasteAsPicture()
ActiveDocument.Content.Select
With Selection
.CopyAsPicture
.Collapse Direction:=wdCollapseEnd
.PasteSpecial DataType:=wdPasteMetafilePicture
End With
End Sub
 
还有这个,似乎也可能可以,不过第一个肯定应该可以的。

来自:xusong168, 时间:2002-8-23 20:38:00, ID:1283903
ActiveDocument.Shapes.AddOLEObject Anchor:=Selection.Range, ClassType:= _
"Word.Document.8", FileName:="", LinkToFile:=False, DisplayAsIcon:=False
Selection.TypeText Text:="fdghfghfghdfgh"
ActiveDocument.Close
If Selection.Type <> wdSelectionShape Then
Selection.InlineShapes(1).ConvertToShape.Select
End If
Selection.ShapeRange(1).OLEFormat.ConvertTo ClassType:="Word.Picture.8", _
DisplayAsIcon:=False
Selection.Copy
 
To yzhsi:
先万分感谢你。:)
果真好用。但现在有两个问题:
1.如果文档中有表格,形成后的图片中的表格就不完整了,不是底线没了就是中间少几根线。你
可以试一下,就知道效果了。
2.怎么把这样形成的图片导出成图片文件,不论是bmp或jpg,任何一种格式都可以。
 
2、你CopyAsPicture做的,就是复制到剪贴板上,然后怎么做就是保存剪贴板图片的问题了,这个好办。
 
但表格显示不全的问题如解决不了,这是没法用的。:(
 
这肯定是个大厦地基没打好, 第88层设计都完成的问题. word 转成图片? 小心了要是又有需求
要把这个图片转回去就好玩了.
 
To idon:
大侠前半句话是什么意思?:)
对于图片转回去的问题没关系的,因为文档我有备份的。
 
请看photoshop关于undo的操作,硬盘猛啊,没其他好招
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
643
import
I
后退
顶部