在禅道中实现WORD等OFFICE文档转换为PDF进行在线浏览
条件:
- 安装好禅道的服务器
- 能直接浏览PDF的浏览器(或通过 安装插件实现 )
- 文档转换服务程序(建议部署在另一台服务器上)
实现 原理:
- 修改禅道的文件预览功能(OFFICE文档其使用的是下载打开方式)为向转换服务请求PDF
- 转换服务收到URL后,下载该文件并调用后台服务转换为PDF,向请求者返回PDF
- 禅道内置的预览PDF功能直接请求浏览器预览PDF
需要修改的文件及内容
xampp\zentao\module\file\control.php
xampp\zentao\module\file\view\printfiles.html.php
xampp\zentao\module\group\lang\resource.php
xampp\zentao\module\file\lang\zh-cn.php
control.php
增加方法
public function cloudview($fileID, $mouse = '')
{
$file = $this->file->getById($fileID);
/* Judge the mode, down or open. */
$mode = 'view';
$fileTypes = 'txt|jpg|jpeg|gif|png|bmp|xml|html|pdf|dwg';
if(stripos($fileTypes, $file->extension) !== false and $mouse == 'left') $mode = 'open';
if($mode == 'open')
{
if(file_exists($file->realPath))$this->locate($file->webPath);
$this->app->triggerError("The file you visit $fileID not found.", __FILE__, __LINE__, true);
}
else
if(file_exists($file->realPath))
{
$fileName = $file->title . '.' . $file->extension;
$fileData = file_get_contents($file->realPath);
$md5data=md5( $fileData);
$this->locate( 'http://192.168.118.136:9345/?url=' . common::getSysURL() . $file-> webPath . '&' . 'fileName=' . $fileName . '&' . 'md5=' . $md5data );
}
else
{
$this->app->triggerError("The file you visit $fileID not found.", __FILE__, __LINE__, true);
}
}
printfiles.html.php
修改方法downloadFile
新增方法viewFile
增加超链接指向
function downloadFile(fileID)
{
if(!fileID) return;
var sessionString = '<?php echo $sessionString;?>';
var url = createLink('file', 'cloudview', 'mfileID=' + fileID + '&mouse=left&mode=open') + sessionString;
window.open(url, '_blank');
return false;
}
function viewFile(fileID)
{
if(!fileID) return;
var sessionString = '<?php echo $sessionString;?>';
var url = createLink('file', 'cloudview', 'mfileID=' + fileID + '&mouse=left&mode=open') + sessionString;
window.open(url, '_blank');
return false;
}
增加链接
$fileTitle = "<li class='list-group-item'><i class='icon-file-text text-muted icon'></i> " . $file->title .'.' . $file->extension;
echo html::a($this->createLink('file', 'download', "fileID=$file->id") . $sessionString, $fileTitle, '_blank', "onclick='return viewFile($file->id)'");
echo "<span class='right-icon'>";
common::printLink('file', 'download', "fileID=$file->id", "<i class='icon-download'></i>", '', "class='edit btn-icon' title='{$lang->file->download}'");
common::printLink('file', 'edit', "fileID=$file->id", "<i class='icon-pencil'></i>", '', "class='edit btn-icon' title='{$lang->file->edit}'");
if(common::hasPriv('file', 'delete')) echo html::a('###', "<i class='icon-remove'></i>", '', "class='btn-icon' onclick='deleteFile($file->id)' title='$lang->delete'");
echo '</span>';
echo '</li>';
resource.php
$lang->resource->file = new stdclass();
$lang->resource->file->download = 'download';
$lang->resource->file->cloudview = 'cloudview';
$lang->resource->file->edit = 'edit';
zh-cn.php
$lang->file->uploadImages = '多图上传';
$lang->file->cloudview = '云预览';
$lang->file->download = '下载附件';
执行效果
权限

附件管理


在禅道中实现WORD等OFFICE文档转换为PDF进行在线浏览的更多相关文章
- 转:C#实现office文档转换为PDF或xps的一些方法
代码支持任意office格式 需要安装office 2007 还有一个office2007的插件OfficeSaveAsPDFandXPS 下载地址 [url]http://www.microsoft ...
- C#实现office文档转换为PDF或xps的一些方法( 转)
源博客http://blog.csdn.net/kable999/article/details/4786654 代码支持任意office格式 需要安装office 2007 还有一个office20 ...
- C#实现office文档转换为PDF格式
1.安装组件OfficeSaveAsPDFandXPS 需要安装office 2007 还有一个office2007的插件OfficeSaveAsPDFandXPS 下载地址 OfficeSave ...
- java使用jacob将office文档转换为PDF格式
jacob 包下载地址: http://sourceforge.net/projects/jacob-project/ 下载后,将jacob 与 jacob-1.19-x64.dll放到安装jdk目录 ...
- office文档转pdf
这里贴下代码吧,没啥好说的. using System; using System.Collections.Generic; using System.Linq; using System.Text; ...
- OFFICE 文档转换为html在线预览
OFFICE 文档在线预览方案很多: 服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览,比如flexpaper Office文档直接转换为SWF,通过网页加载Flash预览 微软的 ...
- Java实现web在线预览office文档与pdf文档实例
https://yq.aliyun.com/ziliao/1768?spm=5176.8246799.blogcont.24.1PxYoX 摘要: 本文讲的是Java实现web在线预览office文档 ...
- Java实现office文档与pdf文档的在线预览功能
最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...
- 把office文档转换为html过程中的一些坑
之前和我们项目的团队一起酝酿了一个项目,公司的业务文档技术文档比较多,但都比较分散,虽然通过FTP或其他方式聚合起来了,但感觉还是不够方便. 另外公司每次都来新员工,新员工都需要一些培训,比较耗时,比 ...
随机推荐
- 使用Monit监控本地进程
目前用它监控某些服务,失败自动重启,同时监控特定的日志文件,如果有变化,就发邮件报警 安装不细写了,网上好多 我先用cat /proc/version看了下我的系统是el6的,于是wget http: ...
- 测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率
之前一篇里写过字符串常用类的三种方式<java中的字符串相关知识整理>,只不过这个只是分析并不知道他们之间会有多大的区别,或者所谓的StringBuffer能提升多少拼接效率呢?为此写个简 ...
- Dapper.Contrib:GetAsync<T> only supports an entity with a [Key] or an [ExplicitKey] property
异常处理:http://www.cnblogs.com/dunitian/p/4523006.html#dapper 原来Model是这样滴 修改后是这样滴 注意点:Model里面的Table和Key ...
- 百度 flash html5自切换 多文件异步上传控件webuploader基本用法
双核浏览器下在chrome内核中使用uploadify总有302问题,也不知道如何修复,之所以喜欢360浏览器是因为帮客户控制渲染内核: 若页面需默认用极速核,增加标签:<meta name=& ...
- HttpUrlConnection 基础使用
From https://developer.android.com/reference/java/net/HttpURLConnection.html HttpUrlConnection: A UR ...
- 带你实现开发者头条APP(三) 首页实现
title: 带你实现开发者头条APP(三) 首页实现 tags: 轮播广告,ViewPager切换,圆形图片 grammar_cjkRuby: true --- 一.前言 今天实现开发者头条APP的 ...
- NET Core-学习笔记(四)
经过前面分享的三篇netcore心得再加上本篇分享的知识,netcore大部分常用知识应该差不多了,接下来将不会按照章节整合一起分享,因为涉及到的东西整合到一起篇幅太大了,所以后面分享将会按照某一个知 ...
- Phantomjs+Nodejs+Mysql数据抓取(2.抓取图片)
概要 这篇博客是在上一篇博客Phantomjs+Nodejs+Mysql数据抓取(1.抓取数据) http://blog.csdn.net/jokerkon/article/details/50868 ...
- 在centos7上安装Jenkins
在centos7上安装Jenkins 安装 添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins ...
- xss和sql注入原理学习
8.4 Web跨站脚本攻击 8.4.1 跨站脚本攻击的原理(1) 跨站脚本在英文中称为Cross-Site Scripting,缩写为CSS.但是,由于层叠样式表 (Cascading Style ...