潛入施工中總圖!
9月 05, 2009 1 Comments
潛入施工中總圖!
CentOS安裝odf-converter,轉換Office 2007文件為OpenOffice格式
8月 09, 2009 0 Comments 電腦軟體 DSpace
CentOS安裝odf-converter,轉換Office 2007文件為OpenOffice格式
為了讓DSpace的media filter功能能夠接受Microsoft Office 2007的DOCX、XLSX與PPTX,我們需要借助odf-converter把Office 2007的格式轉換成OpenOffice相對應的ODT、ODS、ODP格式,才能作接下來的處理。
上圖右邊是原始的Microsoft Office 2007的PPTX格式投影片,左邊則是利用odf-converter轉換成OpenOffce的ODP格式投影片,儘管在字型、版面上有點差異,但還是可以接受的程度。
安裝
安裝的步驟很簡單,只要下載以下檔案並以rpm安裝即可
你可以用以下指令下載並安裝:
[root@dspace ~] wget http://katana.oooninja.com/f/software/odf-converter-integrator-0.2.3-1.i386.rpm
[root@dspace ~] rpm -ivh odf-converter-integrator-0.2.3-1.i386.rpm
使用
使用範例如下:(/f表示強制覆蓋,/i後面接輸入檔名,詳細用法請直接執行OdfConverter)
[root@dspace ~] OdfConverter /f /i input.docx
這樣預設會輸出一個檔名為「input.odt」的OpenOffice檔案,這樣就轉換完成囉。
這次不偷懶,用Zotero好好地作參考資料的書目。使用此篇時也別忘了感謝以下參考資料來源喔!
參考資料:
Convert OpenXML (.docx, etc.) in Linux using command line - OpenOffice.org Ninja. (n.d.). . Retrieved August 9, 2009, from http://www.oooninja.com/2008/01/convert-openxml-docx-etc-in-linux-using.html.
odf-converter-integrator:download [OpenOffice.org Ninja]. (n.d.). . Retrieved August 9, 2009, from http://katana.oooninja.com/w/odf-converter-integrator/download.
小傑的部落格 - Jay's Blog: OpenDocument Format 與 Office Open XML 互轉. (n.d.). . Retrieved August 9, 2009, from http://jay-notebook.blogspot.com/2009/01/opendocument-format-office-open-xml.html.
(more...)用Xvfb讓OpenOffice開機時自動啟動
8月 09, 2009 2 Comments 電腦軟體 網路管理 DSpace
用Xvfb讓OpenOffice開機時自動啟動
使用DSpace的media filter功能時,需要把各種文件檔轉換成PDF文件,這個功能可以藉由OpenOffice來完成。但是OpenOffice必須在圖形介面(也就是Xwindow)中才能開啟,在無法自動啟動的情況下,實在是不太方便。在網路上搜尋各種方法之後,終於找到方法了。
大致上作法如下:利用Xvfb來製作出虛擬的圖形顯示畫面,然後讓OpenOffice在這虛擬的介面開啟,就可以正常啟動OpenOffice並提供轉檔功能了。
我的作業系統是CentOS 5 Final,以下開始介紹安裝方法。
一、安裝Xvfb
可以利用yum來安裝Xvfb:(注意大小寫要正確喔)
[root@ ~] yum install Xvfb
二、安裝OpenOffice
在安裝CentOS的時候我已經把OpenOffice安裝。如果你沒有安裝,那麼也可以利用yum來安裝OpenOffice:
[root@ ~] yum install openoffice.org-*
注意找尋一下你OpenOffice的安裝路徑,我們需要呼叫他的執行程式「soffice.bin」。你可以利用locate指令來搜尋soffice.bin看是放在哪裡路徑底下:
[root@ ~] locate /soffice.bin
CentOS預設安裝是擺在「/usr/lib/openoffice.org/program/soffice.bin」當中,記住這個路徑,在底下設定時會使用到喔!
三、設定啟動時開啟OpenOffice文件轉換服務
請建立「/etc/init.d/openoffice」,並設定執行權限為755。/etc/init.d/openoffice的檔案內容如下:
#!/bin/bash case "$1" in start) DISPLAY=:5.0 export DISPLAY Xvfb :5 -screen scrn 1024x768x24 & /opt/openoffice.org3/program/soffice.bin "-accept=socket,host=127.0.0.1,port=8100;urp;StarOffice.ServiceManager -nofirststartwizard -nologo -headless -display:5" & ;; stop) pkill soffice & pkill Xvfb & exit 1 & ;; *) echo "Usage: $0 { start | stop }" exit 1 ;; esac exit 0
注意到上面的「/usr/lib/openoffice.org/program/soffice.bin」的路徑,請改成你系統安裝OpenOffice的路徑喔!
結果還是花了一整個下午在弄這個。不管怎麼說能用好就好啦……
參考資料:
(more...)DSpace加強Browse功能的BrowseUtil
7月 16, 2009 0 Comments DSpace
DSpace加強Browse功能的BrowseUtil
DSpace具備強大的Browse功能,可是唯獨換頁的功能卻只有薄弱的「next」(下一頁)跟「prev」(上一頁)。因此我寫了一支BrowseUtil來提供這方面的功能,也把[dspace-jspui-webapp]/browse/中full.jsp、single.jsp能作到的功能也加了進去,提供程式設計師在修改Browse功能時能夠有靈活的彈性。
安裝BrowseUtil
請下載以下檔案,並放置指定的位置:
- BrowseUtil.java (SkyDrive、Miroko)
[dspace-source]/dspace-jspui/src/main/java/org/dspace/app/webui/util/BrowseUtil.java - BrowseInfo.java (SkyDrive、Miroko)
[dspace-source]/dspace-jspui/src/main/java/org/dspace/browse/BrowseInfo.java - full.jsp (SkyDrive、Miroko)
single.jsp (SkyDrive、Miroko)
[dspace-source]/dspace/modules/jspui/src/main/webapp/browse/full.jsp
[dspace-source]/dspace/modules/jspui/src/main/webapp/browse/single.jsp
然後請重新編譯DSpace,作mvn package跟ant update的動作。
使用BrowseUtil
引用與建立BrowseUtil物件
在JSP檔案裡面,請輸入以下語法以引用BrowseUtil:
<%@ page import="org.dspace.app.webui.util.BrowseUtil" %>
BrowseUtil物件建立需要輸入兩個參數,個別是HttpServletRequest跟BrowseInfo(這是DSpace的Browse物件),建立範例如下;
<% BrowseInfo bi = (BrowseInfo) request.getAttribute("browse.info"); //先取得BrowseInfo物件 BrowseUtil bu = new BrowseUtil(request, bi); //建立BrowseUtil %>
然後我們就可以以這個bu物件來取得連結了。
取得換頁連結
<% String next = bu.getNextLink(); //下一頁 String last = bu.getLastLink(); //最後一頁 String prev = bu.getPrevLink(); //前一頁 String first = bu.getFirstLink(); //第一頁 %>
取得頁碼
以下語法會取得每一頁頁碼與連結,但是會排除自己的頁碼:
<%= bu.getPagesList() %>
結果如下:
<<first < previous 1 2 3 4 5 6 next > last >>
以下語法會取得該頁前後2頁之內的頁碼:
<%= bu.getPagesLink(2) %>
結果如下:
<<first < previous ... 2 3 4 5 6 ... next > last >>
其他BrowseInfo其實還有小功能,如果有需要的話就請自行看看程式碼囉。寫小功能還是非常讓人愉快的,大家加油!
(more...)DSpace擴增Collection Browse功能
7月 05, 2009 4 Comments DSpace
DSpace擴增Collection Browse功能
DSpace內建了非常強大的Browse功能,只是一般好像比較少看到有人善加利用。這次主要是要擴增Browse功能,讓他具備可以找出特定Metadata欄位中的值。
安裝方法
請下載以下檔案,依照同樣的目錄結構放到[dspace-source]當中,再重新編譯DSpace即可。
- 20090705_dspace_browse_filterdcvalue_forblog.zip:SkyDrive空間、Miroko空間
使用方法
舉例來說,下面網址與圖片顯示是在預設情況下全部的item:(因為這是區域網路,所以下面的網址應該連不到這個網頁)
http://192.168.1.30:8080/jspui/handle/123456789/56/browse?type=title&submit_browse=Title
但是只要在網址的GET參數當中加入「fdc[0]=欄位=值」(fdc是FilterDCValue的縮寫),就會出現特定item的效果,如下,注意紅字的位置:
如果你要找出具備兩個條件的item,那就輸入「fdc[0]=欄位=值&fdc[1]=欄位=值」,例如下面的網址與圖:
http://192.168.1.30:8080/jspui/handle/123456789/56/browse?type=title&submit_browse=Title&fdc[0]=dc.title=121212&fdc[1]=dc.date.issued=2009
裡面的所有連結我都已經調整過了,會自動帶入fdc的參數進去。至於細微的版面調整,那就是大家各自努力囉。
DSpace的Browse功能意外地複雜,解析物件的結構、資料的流向花了我不少的時間。雖然瀏覽感覺上只是個小功能,但是既然DSpace都有提供了,還是希望大家能夠好好利用吧!
(more...)
Comments