⑴ javaWeb開發中怎麼讓文件可以在線預覽,比如預覽doc,txt,ceb文件。
一般下載時能在線打開,我以前做過pdf的,貌似是本地軟體支持的,即在線打開只是調用本地的軟體。如pdf閱讀器類。
如果說能直接點擊文件查看的,以前我用過webOffice的控制項。就叫點聚webOffice,可以在線打開。
⑵ 用java做一個word和excel的在線預覽功能,跪求代碼
前提:本人的系統為Ubuntu13.1064位系統。本篇是我在配置好環境後一段時間寫的,所以操作上可能會有也錯誤,因此僅供參考。
搜索在線顯示office和pdf,最常見的方法就是把都轉為swf,然後通過FlexPaper顯示。這個方法有缺點,FlexPaper不支持所有瀏覽器(我只能在chrome中使用,firefox要進行設置)
我用的系統是Ubuntu13.1064位
一下所提到的軟體,我都會在附件中分享
一、openoffice安裝
下載附件中的Apache_OpenOffice_incubating_3.4.1_linux_x86-64_install-rpm_zh-CN,解壓,安裝RPMS裡面的所有deb包,然後按炸ungRPMS/desktop-integration裡面的openoffice.org3.4-redhat-menus_3.4-9594_all.deb。假如從網上下載下來的openoffice裡面全市rmp包的話需要自己通過alien轉換成deb(附件中的是我自己轉換過的)
安裝完成後就可以運行了
soffice--headless--accept="socket,host=127.0.0.1,port=8100;urp;"--nofirststartwizard
網上提示使用soffice--headless--accept="socket,host=127.0.0.1,port=8100;urp;"--nofirststartwizard&的是後台運行
運行以後可以通過netstat-ano|grep8100查看時候運行,上面的命令是在8100運行oppenoffice
網上還說要安裝OpenOfficeSDK3.3這個東東,我沒有裝也可以轉換
二、offie轉pdf
下載附件中的jodconverter-2.2.2,通過命令
java-jarjodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jarXXX.docxXXX.pdf
轉換office為pdf
三、安裝freetype-2.4.6和jpeg-8c
不安裝這兩個的話是沒有辦法編譯出swftools中的pdf2swf的
安裝方法是進入目錄,然後
./configure
make
makeinstall
四、添加字體
下載附件中的chinese-simplified(裡面已經添加了部分字體),解壓,放到/usr/local/share/xpdf/中,如果沒有xpdf文件夾就新建一個。
五、安裝swftools
下載附件中的swftools-2013-04-09-1007,同樣
./configure
make
makeinstall
就可以了,運行
psf2swf
如果help提示的話表示安裝成功
運行命令
pdf2swf-oXXX.swf-T-z-t-fXXX.pdf-slanguagedir=/usr/local/share/xpdf/chinese-simplified-sflashversion=9
可以把pdf轉換成swf了。
至此完畢
所有附件附件:
⑶ flexpaper在線預覽問題java linux office文件在線預覽的時候出現如圖的問題,不能預覽,求大神幫忙
swftools-0.9.1.exe 和 FlexPaper_1.4.5_flash.zip,工具網上下載。
二、PDF轉換SWF文件核心類:
public class DocConverter {
private static final int environment = 1;// 環境1:windows,2:linux(涉及pdf2swf路徑問題)
private String fileString;
private String outputPath = "";// 輸入路徑,如果不設置就輸出在默認位置
private String fileName;
private File pdfFile;
private File swfFile;
private File docFile;
public DocConverter(String fileString) {
ini(fileString);
}
/*
* 重新設置 file @param fileString
*/
public void setFile(String fileString) {
ini(fileString);
}
/*
* 初始化 @param fileString
*/
private void ini(String fileString) {
this.fileString = fileString;
fileName = fileString.substring(0, fileString.lastIndexOf("."));
docFile = new File(fileString);
pdfFile = new File(fileName + ".pdf");
swfFile = new File(fileName + ".swf");
}
/*
* 轉為PDF @param file
*/
/*
* 轉換成swf
*/
private void pdf2swf() throws Exception {
Runtime r = Runtime.getRuntime();
if (!swfFile.exists()) {
if (pdfFile.exists()) {
if (environment == 1)// windows環境處理
{
try {
// 這里根據SWFTools安裝路徑需要進行相應更改
Process p = r.exec("G:/Program Files/SWFTools/pdf2swf.exe " + pdfFile.getPath() + " -o " + swfFile.getPath() + " -T 9");
System.out.print(loadStream(p.getInputStream()));
System.err.print(loadStream(p.getErrorStream()));
System.out.print(loadStream(p.getInputStream()));
System.err.println("****swf轉換成功,文件輸出:" + swfFile.getPath() + "****");
if (pdfFile.exists()) {
// pdfFile.delete();
}
} catch (Exception e) {
e.printStackTrace();
throw e;
}
} else if (environment == 2)// linux環境處理
{
try {
Process p = r.exec("pdf2swf " + pdfFile.getPath() + " -o " + swfFile.getPath() + " -T 9");
System.out.print(loadStream(p.getInputStream()));
System.err.print(loadStream(p.getErrorStream()));
System.err.println("****swf轉換成功,文件輸出:" + swfFile.getPath() + "****");
if (pdfFile.exists()) {
pdfFile.delete();
}
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
} else {
System.out.println("****pdf不存在,無法轉換****");
}
} else {
System.out.println("****swf已存在不需要轉換****");
}
}
static String loadStream(InputStream in) throws IOException {
int ptr = 0;
//把InputStream位元組流 替換為BufferedReader字元流 2013-07-17修改
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder buffer = new StringBuilder();
while ((ptr = reader.read()) != -1) {
buffer.append((char) ptr);
}
return buffer.toString();
}
/*
* 轉換主方法
*/
public boolean conver() {
if (swfFile.exists()) {
System.out.println("****swf轉換器開始工作,該文件已經轉換為swf****");
return true;
}
if (environment == 1) {
System.out.println("****swf轉換器開始工作,當前設置運行環境windows****");
} else {
System.out.println("****swf轉換器開始工作,當前設置運行環境linux****");
}
try {
// doc2pdf();
pdf2swf();
} catch (Exception e) {
// TODO: Auto-generated catch block
e.printStackTrace();
return false;
}
if (swfFile.exists()) {
return true;
} else {
return false;
}
}
/*
* 返迴文件路徑 @param s
*/
public String getswfPath() {
if (swfFile.exists()) {
String tempString = swfFile.getPath();
tempString = tempString.replaceAll("\\\\", "/");
return tempString;
} else {
return "";
}
}
/*
* 設置輸出路徑
*/
public void setOutputPath(String outputPath) {
this.outputPath = outputPath;
if (!outputPath.equals("")) {
String realName = fileName.substring(fileName.lastIndexOf("/"), fileName.lastIndexOf("."));
if (outputPath.charAt(outputPath.length()) == '/') {
swfFile = new File(outputPath + realName + ".swf");
} else {
swfFile = new File(outputPath + realName + ".swf");
}
}
}
}
三、JSP文件,注意引入的幾個js文件和FlexPaperViewer.swf文件,其中FlexPaperViewer.swf和jsp文件放在同一目錄即可。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String paths=(String)request.getAttribute("swfpath");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>te</title>
<style type="text/css" media="screen">
html, body { height:100%; }
body { margin:0; padding:0; overflow:auto; }
#flashContent { display:none; }
</style>
<script type="text/javascript" src="<%=basePath %>js/swfobject/swfobject.js"></script>
<script type="text/javascript" src="<%=basePath %>js/flexpaper_flash.js"></script>
<script type="text/javascript">
//<!-- For version detection, set to min. required Flash Player version, or 0 (or 0.0.0), for no version detection. -->
var swfVersionStr = "10.0.0";
//<!-- To use express install, set to playerProctInstall.swf, otherwise the empty string. -->
/* var xiSwfUrlStr = "playerProctInstall.swf"; */
var xiSwfUrlStr = ""; //值可以任意
var flashvars = {
SwfFile : escape("<%=basePath+paths%>"), //swf文件路徑(lucene4.6和頁面同一個位置)
Scale : 0.6,
ZoomTransition : "easeOut",
ZoomTime : 0.5,
ZoomInterval : 0.1,
FitPageOnLoad : false,
FitWidthOnLoad : true,
PrintEnabled : true,
FullScreenAsMaxWindow : false,
ProgressiveLoading : true,
PrintToolsVisible : true,
ViewModeToolsVisible : true,
ZoomToolsVisible : true,
FullScreenVisible : true,
NavToolsVisible : true,
CursorToolsVisible : true,
SearchToolsVisible : true,
localeChain: "en_US"
};
var params = {
}
params.quality = "high";
params.bgcolor = "#ffffff";
params.allowscriptaccess = "sameDomain";
params.allowfullscreen = "true";
var attributes = {};
attributes.id = "FlexPaperViewer";
attributes.name = "FlexPaperViewer";
swfobject.embedSWF(
"FlexPaperViewer.swf", "flashContent",
"1024", "700",
swfVersionStr, xiSwfUrlStr,
flashvars, params, attributes);
swfobject.createCSS("#flashContent", "display:block;text-align:center;");
</script>
</head>
<body>
<div style="width: 100%;height: 90%; text-align: center;">
<div id="flashContent">
</div>
</div>
</body>
</html>
⑷ java 怎麼實現在線預覽上傳的word等文件的預覽功能
可以將word先轉為pdf,然後在頁面中嵌一個iframe,在這個frame中直接打開這個pdf文件。
僅供參考
⑸ java中怎樣實現附件在線預覽
pageoffice可以在線打開word、excel文檔
圖片可以使用Viewer.js等開源框架
pdf可以通過swfTools將pdf文件轉換成swf格式的文件然後使用FlexPaper在頁面上顯示
⑹ Java 如何實現打開PDF文件,並把文件顯示出來;就是實現文件打開的功能。急,急....
java打開PDF需要藉助其他的jar包的,如果我沒記錯的話,然後查看相應的API介面。應該是以流的形式進行讀取,之前寫過一點是往裡面寫數據的,生成html文然後寫入PDF文件 工具有:
ItextPdf、FlyingAndItext、pd4ml 這些是將html文轉換為PDF文件的,讀取的話直接用bufferread讀取試試(我沒寫過!)
⑺ Javaweb office文檔在線預覽怎麼實現!!!
在線預覽的不是office格式,而且是swf文件,
flexPaper是可以把swf放在頁面上進行展示的,
1、flash 的flexpaper 將文檔轉換為swf格式,然後使用flash在網頁中瀏覽,
2、使用開源的軟體openoffice+pdf2htmlEx,利用openoffice的介面先將文檔轉換為pdf格式,然後在使用pdf2htmlEx將文檔轉換為html直接在網頁中顯示;
3、搭建一個文檔預覽伺服器,基於office web app,也就是微軟的office online。
搭建伺服器步驟:
首先,需要轉換server
安裝IIS 7.0,打開伺服器管理器,添加角色和功能,打開「添加角色和功能向導」界面,點擊下一步,因為是基於本機安裝,所以要選擇「基於角色或者基於功能安裝」,在伺服器角色列表上選擇「Web伺服器」,點擊下一步,安裝完成。
其次,域控server
(1)打開伺服器管理器,添加角色和功能,出現「添加角色和功能」界面,下一步,因為是基於本機安裝,所以要選擇「基於角色或基於功能安裝」,選擇添加AD域服務,同時添加所需功能,根據提示操作,下一步,等待安裝完成。
(2)配置域,點擊伺服器管理器左側「AD DS」,點擊「升級為域控制器」,進入AD域伺服器配置向導,下一步(注意:域的填寫),填寫密碼,下一步,提示DNS無法創建,不用管,繼續下一步,安裝路徑,默認,下一步,查看選項,默認,下一步,點擊安裝,安裝完成,會提示注銷重啟。
(3)將轉換伺服器加入到域控伺服器,修改NDS,指向域控伺服器,在計算機屬性中,修改計算機名稱,並添加到域控伺服器(如下圖),確定後提示注銷重啟伺服器,在域控伺服器,管理中選擇添加伺服器,名稱填寫office web apps server的計算機名稱,立即查找。然後添加到右邊,確定。在域控伺服器中,所有伺服器顯示兩台伺服器,並都是聯機狀態則表示成功。
至此,伺服器安裝完成。
⑻ 如何用java實現預覽word,ppt文檔部分內容
開源的方法是用:openoffice+swfTool +jodconverter文件預覽;原理是:將word轉成pdf,再轉成swf文件通過falsh實現在線預覽