目的:office文件转换为PDF或SWF,最终可使用Flexpaper调用adobe flash player进行浏览

放弃两个文件转换工具:

1.FlashPaper,转换出的文件由于自带工具栏,无法控制打印等操作;

程序中进行命令行调用时,依赖MSOffice及adobe reader,对于环境依赖比较大

2.print2flash,代码中调用必须使用server版本(5000¥),未有破解

最终方案:

OpenOffice+JodConverter+SWFtools(office文件→PDF→SWF)

环境配置要求:

jre 1.4以上(JodConverter依赖)

office文件→PDF

在java中可以直接调用JodConverter类库执行

delphi中可调用JodConverter的可执行文件jar+命令行参数

命令行实例:

java -jar "D:\jodconverter-2.2.2\lib\jodconverter-cli-2.2.2.jar" "D:\业务部\1.doc" "D:\业务部\1.pdf"

PDF→SWF

调用swftools中的pdf2swf.exe+命令行参数(包括中文字体包位置,中文字体包位置需自行设置)

具体见:http://blog.csdn.net/fh13760184/article/details/4100421

命令行实例

D:\SWFTools\pdf2swf.exe  -o "D:\业务部\1.swf" -t "D:\业务部\1.pdf" -s languagedir="D:\xpdf\chinese-simplified"

delphi中的关键代码,思路是每条转换任务作为一个线程,进程中创建一个进程,进程结束就表示任务结束

procedure StopProcess(ProcessID: DWORD);
var
  Handle: THandle;
begin
  Handle := OpenProcess(PROCESS_TERMINATE or PROCESS_VM_READ, False, ProcessID);
  if Handle <> 0 then
  try
    TerminateProcess(Handle, 0);
    WaitForSingleObject(Handle, INFINITE);
  finally
    CloseHandle(Handle);
  end;
end;

procedure TFileConvertThread.Execute;
var

pInfo: TProcessInformation;
  StartInfo: TStartupInfo;
  Path: array[0..MAX_PATH - 1] of Char;
  cmdLines: string;
  fileExName: string;
  dw: HWND;

begin
  inherited;
  FillChar(StartInfo, sizeof(StartInfo), 0);
  StartInfo.cb := sizeof(StartInfo);

StartInfo.wShowWindow := SW_HIDE; //隐藏命令行窗口
  StartInfo.dwFlags := STARTF_USESHOWWINDOW;
  StartInfo.hStdError := 0;
  StartInfo.hStdInput := 0;
  StartInfo.hStdOutput := 0;

cmdLines :='java -jar "D:\jodconverter-2.2.2\lib\jodconverter-cli-2.2.2.jar" "D:\业务部\1.doc" "D:\业务部\1.pdf"';
  //cmdLines :='D:\SWFTools\pdf2swf.exe  -o "D:\业务部\1.swf" -t "D:\业务部\1.pdf" -s languagedir="D:\xpdf\chinese-simplified"';
  //打开一个进程
  CreateProcess(nil, PAnsiChar(cmdLines), nil, nil, False, 0, nil, nil,
    StartInfo, pInfo);

FSysPid := pInfo.dwProcessId; //获取系统进程pid
  dw := WaitForSingleObject(pInfo.hProcess, 120000); //120000表示超时时间为2分钟,等待进程执行的信号状态

case dw of
    WAIT_OBJECT_0: // 进程正常执行完毕
      begin
        //  '转换成功!'
      end;
    WAIT_TIMEOUT: // 进程执行超时
      begin
        //'转换超时!'; 此处可kill pid
        StopProcess(FSysPid);
      end;
    WAIT_FAILED: // 进程执行失败
      begin
       // '转换失败!';
      end
  end;
end;

转载于:https://www.cnblogs.com/Closeyes/p/3325695.html

Delphi下使用OpenOffice+JodConverter+SWFtools进行文件转换相关推荐

  1. OpenOffice+JodConverter实现Office文件到PDF的转换

    文章目录 1. OpenOffice 下载.安装.启动 2. JodConverter下载 3. 文件转化 4. 中文乱码 5. 解决中文乱码 1. OpenOffice 下载.安装.启动 openo ...

  2. linux 下配置 openOffice ,jodconverter,解决字体乱码

    环境:linux 这里使用的docker 的contos7 系统.由于缺少很多依赖包,所以下面安装过程会解决一些问题,如果你没有碰到,就不用执行. 安装包下载: 链接:https://pan.baid ...

  3. 用openoffice+jodconverter+webuploader+pdf.js实现文件上传、在线预览功能

    一.背景 最近公司一个项目要实现一个文件上传以及多文档在线预览的功能,之前一直做无线工具开发的,没有涉及到这些东西.另外项目组缺java开发人员,而且自己也只是一个半吊子前端加小半吊子java开发人员 ...

  4. linux swftools java_linux安装openoffice与SWFtools工具

    第一步安装openoffice 安装最新的openoffice 需要最新的系统,redhadserver5.5不行,因为里面GLIBC最高是2.5的,最新的openoffice需要GLIBC_2.11 ...

  5. php linux OpenOffice+JODConverter+php实现将word/ppt/excel文档转换为pdf

    注意点:上传文件名生成一个别名备用,在文件路径中使用英文或数组 总结下: 1.碰到的坑不少,网上资料很多不全面,就拿linux上安装openoffice来说,需要安装一堆的依赖才成功跑起来 安装的方法 ...

  6. Linux安装openoffice和swftools

    一.安装openoffice 1.下载 ubuntu:Apache_OpenOffice_4.1.3_Linux_x86-64_install-deb_zh-CN.tar.gz centos:Apac ...

  7. openoffice jodconverter 文档转换pdf过坑记录

    文档转换性能测试 在财务系统中使用了两种PDF转换组件 一种是com.artofsolving,也是系统第一次引用的组件: <!-- https://mvnrepository.com/arti ...

  8. linux下安装OpenOffice及使用java调用OpenOffice转换word、Excel为pdf并添加水印

    一.linux下安装OpenOffice OpenOffice是Apache的一款开源的软件,我主要是用来转换office文档成pdf文件,并给其添加水印等. (1)下载安装包 进入主题,首先我们需要 ...

  9. Delphi下利用WinIo模拟鼠标键盘详解

    本文最早在编程论坛上发表,文章地址:http://programbbs.com/bbs/view12-17207-1.htm,相关文件可以在上述地址的页面中下载.转载时请注明出处. 前言 一日发现Se ...

最新文章

  1. 如何从代码中获取当前方法的名称[复制]
  2. 如何查看计算机里家庭组有几个,win7网络文件夹-win7家庭组共享的文件在哪儿查?win7 – 手机爱问...
  3. Bash 中的特殊字符大全
  4. 论 ACM 与泡妞 (转载)
  5. 传统公司部署OpenStack(t版)简易介绍(五)——nova模块部署
  6. ios之UISplitViewController
  7. CCIE理论-第五篇-SDA-2
  8. mongodb远程连接windows
  9. UVA 1264 - Binary Search Tree(BST+计数)
  10. 无代码开发到底是不是伪需求?
  11. 面试C++后台开发考察哪些问题?
  12. 提供一个vs2010 sp1的下载
  13. oracle 更改system.dbf,oracle数据文件system01.dbf上有坏块,如何修复
  14. 可行性研究报告【列文】2022-5.6
  15. 【ITool】excel导入导出工具
  16. 互联网产品的运营指标
  17. Unittest-单元测试2
  18. matlab高斯投影坐标,基于matlab的高斯投影正反算与相邻带坐标换算程序设计
  19. 硬件:宽带猫(光猫)的基础知识
  20. 首个超越经典算法的寻找MIS近似解的量子算法诞生

热门文章

  1. java和python哪个好就业2020-JAVA和Python哪个好就业?
  2. PIL实现两张图片合成一张,和图片加文字
  3. NameServer的启动
  4. phpstorm中的快捷键
  5. golang json 读写配置文件
  6. nginx 转将http跳转到https
  7. Java理论知识及面试题
  8. 使用 Composer 安装 Laravel 框架
  9. 235 Lowest Common Ancestor of a Binary Search Tree
  10. 《BI那点儿事》数据流转换——排序