社区
Delphi
帖子详情
【菜鸟问题】如何在DBMemo中加载显示Word文档和PDF文档的内容?
JustinLee
2003-09-25 05:19:09
要求点击打开按钮,在硬盘中选择一个Word文档或PDF文档后,在下面的DBMemo中能显示出文档内容,其中必须也能显示图片、表格等。
...全文
84
5
打赏
收藏
【菜鸟问题】如何在DBMemo中加载显示Word文档和PDF文档的内容?
要求点击打开按钮,在硬盘中选择一个Word文档或PDF文档后,在下面的DBMemo中能显示出文档内容,其中必须也能显示图片、表格等。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
JustinLee
2003-12-11
打赏
举报
回复
谢谢了!
看来还是没办法打开PDF了~~
sixgj
2003-12-06
打赏
举报
回复
让DELPHI与OFFICE联姻
由于微软的Office系列的完善的功能;与Windows和IE的紧密集成以及强大的扩展能力,它实际上已经成为事实上的Windows下办公软件的标准,我们知道在VB中可以建立各种Office对象(Word、Excel)并控制这些对象编辑、打印、保存文档以及控制执行Office中的很多操作。象这样在VB中建立并控制Office对象是十分有用的,例如你可以将一个或者一批数据库自动输入到Word或者Excel中并保存,再通过Outlook将文档分发给其它同仁。
过去,这只有通过VB才能实现的,但是现在Delphi5也提供了这样强大的对象组。利用Delphi也可以利用Office资源了。
打开Delphi,滚动Compent Palette到Servers页,就可以看到很多熟悉的控件图标,这些就是Office组件的控件。Delphi 5中对应Office的组件包括了Word、Excel、Access、PowerPoint和Outlook可以说是十分的全面。不过要使用这些组件首先要保证你的系统中安装了Office 97或以上的 版本。
下面首先来说以下Office组件的基本使用方法Delphi中对于Office中不同的组件,首先要建立一个Application对象,例如要控制Word,首先要建立TWordApplication对象,然后再将诸如TWordDocument等Word对象通过ConnectTo方法连接到TWordApplication对象上。对于其它的Excel、Outlook等也是如此。
下面我通过具体的范例来说明对Delphi中Office对象的控制,即如何将文字输出到Word中进行简单的排版并保存和打印输出。
首先建立一个新的工程,在Form1中加入三个TButton对象、一个TMemo对象、一个TWordApplication对象、一个TWordDocument对象、一个TWordFont对象。下面是Form1的代码:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Word97, OleServer,Clipbrd;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
WordApplication1: TWordApplication;
WordDocument1: TWordDocument;
WordFont1: TWordFont;
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Caption := '插入到Word';
Button2.Caption := '打印';
Button3.Caption := '退出';
Button2.Enabled :=False;
Button3.Enabled :=False;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Template,NewTemplate,ItemIndex:OleVariant;
procedure setfont;
begin
WordFont1.ConnectTo(WordDocument1.Sentences.Get_Last.Font);
WordFont1.Bold := 1;
WordFont1.Italic := 1;
WordFont1.shadow := 1;
WordFont1.Size := 12;
end;
begin
try
Template := EmptyParam;
NewTemplate := True;
ItemIndex := 1;
try
Wordapplication1.Connect;
except
MessageDlg('无法连接,也许没有安装Word', mtError, [mbOk], 0);
Abort;
end;
Wordapplication1.Visible := False;
WordApplication1.Caption := 'Delphi Word';
//建立一个新文档
Template := EmptyParam;
NewTemplate := False;
WordApplication1.Documents.Add(Template, NewTemplate);
//建立WordDocument连接
WordDocument1.ConnectTo(WordApplication1.Documents.Item(ItemIndex));
//因为Word进行拼写检查需要很多时间,所以首先关闭检查
WordApplication1.Options.CheckSpellingAsYouType := False;
WordApplication1.Options.CheckGrammarAsYouType := False;
//将Memo1的内容拷贝到Word中
SetFont;
WordDocument1.Range.InsertAfter('Memo1的文本: ' + #13+Memo1.Text + #13);
Button2.Enabled :=True;
Button3.Enabled :=True;
Button1.Enabled :=False;
except
on E: Exception do
begin
ShowMessage(E.Message);
WordApplication1.Disconnect;
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
WordDocument1.PrintOut;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
SaveChanges,OriginalFormat,RouteDocument,SavePath: OleVariant;
begin
SaveChanges := WdDoNotSaveChanges;
OriginalFormat := UnAssigned;
RouteDocument := UnAssigned;
try
SavePath:='c:\samp.doc';
WordDocument1.SaveAs(SavePath);
WordDocument1.Close;
WordDocument1.Disconnect;
WordApplication1.Quit(SaveChanges, OriginalFormat, RouteDocument);
WordApplication1.Disconnect;
close;
except
on E: Exception do
begin
Showmessage(E.Message);
WordApplication1.Disconnect;
end;
end;
end;
end.
运行程序,在Memo1中输入一些文字,点击“插入到Word”按钮,然后点击“打印”按钮就可以将由Memo1输入到Word中的文本打印出来。点击“退出”按钮就可以将文档保存到 c:\samp.doc 中然后关闭与Word的连接并退出。
由上面的范例可以看到,Delphi对于Office组件的编程同VB是有一些相似的,由于不知道什么原因,Delphi并没有提供Office组件的帮助文档。上面的程序我是一点点摸索出来的,但是如果你掌握了Office组件的编程技巧,加上Delphi强大的功能,一定会使你的程序如虎添翼的。
JustinLee
2003-09-27
打赏
举报
回复
难道没人会???
IORILI
2003-09-27
打赏
举报
回复
呵呵,高不定
hmzgz81
2003-09-27
打赏
举报
回复
帮你up!
没研究过!
RaveReports7.05 修正了汉字
显示
为乱码的
问题
在7.05版本之前,用户可能遇到过在处理包含汉字的报表时,汉字
显示
为乱码的
问题
。这个
问题
主要涉及到字符编码的不兼容或者设置不当。 在计算机系统
中
,汉字的正确
显示
依赖于正确的字符编码。常见的字符编码有ASCII...
使用C++Builder开发数据库应用系统.
pdf
通常,这会涉及使用DBGrid、DBEdit、
DBMemo
等控件来
显示
和编辑数据库
中
的记录。例如,通过DBGrid可以直观展示所有记录,而DBEdit和
DBMemo
则用于输入或编辑特定字段的值。此外,通过设置控件的DataSource属性,可以使...
Access VBA教程高级篇.
pdf
Access VBA教程高级篇主要涵盖了使用VBA在Access数据库
中
操作数据的方法,特别是涉及DAO(Data Access Objects)和ADO(ActiveX Data Objects)两种技术。DAO是Access早期的数据访问接口,而ADO则是一个更现代、更...
使用Delphi7创建Intraweb应用程序参考.
pdf
2. 在Delphi
中
,选择"File" -> "New" -> "Other",然后在打开的对话框
中
选择"IntraWeb"选项卡。 3. 选择"Stand Alone Application",点击"OK",进入设计界面。 4. 指定刚才创建的"HelloWord"目录作为项目保存位置,...
电子病历管理系统简介
在 Delphi
中
,可以直接在代码编辑器
中
编写
显示
消息框的代码,以提供帮助信息。 Delphi 提供了丰富的组件库和事件驱动编程模型,使得开发者能够高效地构建用户界面和实现业务逻辑。例如,每个功能模块的按钮(如 ...
Delphi
5,927
社区成员
262,932
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章