本帖最后由 /bq 于 2025-3-2 21:49 编辑
20250302更新
1、修改为数据库存储文件。
2、修改文件处理时未退出当前编辑文档,引起文件打开时提示文件已经使用问题。
3、添加目录右键直接添加转换任务,实现旧文档的批量转换工作。首次运行程序后自动添加系统目录菜单右键“文档转换工具”菜单。
4、主界面右键可对已经转换失败文件重新启动转换任务,控制所有所有文档或者所有错误文档。
5、提供一个简单的页面进行在线提交转换下载功能。
6、通知栏菜单添加重启服务,下载OFFICE网站地址,打开测试转换页面功能。更新及设置功能正在实现。
7、主窗口右键添加监测目录后可实现对指定目录的监控文件添加操作,实现文档的转换功能。
主要功能代码[Delphi] 纯文本查看 复制代码 文件重复启动时通过消息通知已经运行的程序 var s: ansistring;
var Data: tagCOPYDATASTRUCT;
var pBuf: PansiChar;
if ParamCount > 0 then
begin
for i := 1 to ParamCount do
s := s + ',' + ParamStr(i);
Delete(s, 1, 1);
end;
GetMem(pBuf, Length(s) + 1);
ZeroMemory(pBuf, Length(s) + 1);
StrPCopy(pBuf, s);
Data.cbData := Length(s);
Data.dwData := Length(s);
Data.lpData := pBuf;
xlog('发送文件目录处理命令:' + s);
SendMessage(h, WM_COPYDATA, 0, Integer(@Data));
[Delphi] 纯文本查看 复制代码
wdoc := wapp.Documents.Open(FieldByName('fileName').asString,
False, True); //文件名,不存历史打开,只读打开
wdoc.saveas(ChangeFileExt(FieldByName('fileName').asString,
'.' + FieldByName('fileDes').asString), 17);
wdoc.Close(False); //退出当前打开文档
网页转换界面
通知栏菜单
系统目录右键菜单
主界面
docsrv_bin.7z
(2 MB, 下载次数: 2)
2025019更新
1、自动监测本程序目录及子目录文件添加操作
2、修改监测到修改立即进行转换为监测完添加文件转化队列,防止转换过程中无法监测到新文件的问题
3、最小化隐藏主窗口,双击右下图标显示。关闭窗口自动隐藏。
核心代码,使用qdac的线程队列,
[Delphi] 纯文本查看 复制代码 var
wdoc: Variant;
begin
//listview
AJob.Worker.ComNeeded; //保证在线程中初始化COM服务
with FrmMain.lv.Items.Item[IntPtr(AJob.Data)] do
begin
try
SubItems.Strings[2] := '准备转换';
//COM方式调用WORD,进行DOC到PDF转换
wdoc := CreateOleObject('Word.Document');
wapp.Documents.Open(SubItems.Strings[0]);
wdoc := wapp.ActiveDocument;
wdoc.saveas(ChangeFileExt(SubItems.Strings[0], '.pdf'), 17);
//转换完成后退出word,可能存在无法退出的清空,后面会添加
杀进程功能
wapp.quit;
SubItems.Strings[2] := '已经转换';
except
on E: Exception do
begin
SubItems.Strings[2] := '转换失败';
XLog(e.Message);
end;
end;
end;
end;
|