OA 系統需求:文件一鍵上傳、線上預覽(類似百度文庫)。環境:CentOS 5.5,技術棧:OpenOffice 3 + Pdf2Swf + JODConverter + FlexPaper。
tar zxvf OOo_3.3.0_Linux_x86-64_install-rpm-wJRE_zh-CN.tar.gz cd RPMS rpm -ivh *.rpm --nodeps --force
預設安裝至 /opt/openoffice.org3/。
/opt/openoffice.org3/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
加入 /etc/rc.local 實現開機自啟。
將 Windows C:\Windows\Fonts\simhei.ttf(黑體)、simsun.ttc(宋體)複製至:
/opt/openoffice.org/basis3.3/share/fonts/truetype/
重啟 OpenOffice 服務生效。
tar zxvf OOo-SDK_3.3.0_Linux_x86-64_install-rpm_en-US.tar.gz cd OOO330_m20_native_packed-1_en-US.9567/RPMS/ rpm -ivh *.rpm
# 解壓後直接使用 lib/jodconverter-cli-2.2.2.jar java -jar /usr/local/wenku/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /tmp/1.doc /tmp/1.pdf
測試成功即完成 DOC→PDF 轉換環境。
# 編譯安裝或使用 rpm yum install swftools # 若有可用源 # 或從源碼編譯(需 zlib、libjpeg、freetype 開發包)
轉換指令:
pdf2swf /tmp/1.pdf -o /tmp/1.swf -T 9 -f
FlexPaperViewer.swf、js/FlexPaperViewer.js<?php
function convertToSwf($sourcePath, $outputDir) {
$pdfPath = $outputDir . '/' . basename($sourcePath, '.doc') . '.pdf';
$swfPath = $outputDir . '/' . basename($sourcePath, '.doc') . '.swf';
// 1. DOC -> PDF
$cmd1 = "java -jar /usr/local/wenku/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar " .
escapeshellarg($sourcePath) . " " . escapeshellarg($pdfPath);
exec($cmd1, $out1, $ret1);
if ($ret1 !== 0) throw new Exception("DOC->PDF 轉換失敗");
// 2. PDF -> SWF
$cmd2 = "pdf2swf " . escapeshellarg($pdfPath) . " -o " . escapeshellarg($swfPath) . " -T 9 -f";
exec($cmd2, $out2, $ret2);
if ($ret2 !== 0) throw new Exception("PDF->SWF 轉換失敗");
return $swfPath;
}
max_execution_time、nginx proxy_read_timeout。現今建議考慮: