先說下我要實現的內容:就是在WORD文檔中的指定的表格的指定儲存格內插入一張指定的圖片。
1、我在WIN下用OOo做的時候出現了這樣的情況,當我正常打開WORD時能將圖片插入到指定位置。可是當我用HIDDEN模式打開時,OOo能找到該位置(我在插入圖片語句前加了列印該位置內容的列印語句,列印出來的內容是對的)可是圖片就是插不准,老是插到檔的最後面。
[code] /**
* <功能简述>
* 在表中的指定位置插入图片等内容
*
<功能详细描述>
* 改装了DevelopersGuide上的函数
* @param sCellName 表格中单元格的名字
* @param xTextContent 对象
* @param xTable 表格对象
* @throws IllegalArgumentException
*/
protected static void insertIntoCell(String sCellName, com.sun.star.text.XTextContent xTextContent,
XTextTable xTable) throws IllegalArgumentException
{
// Access the XText interface of the cell referred to by sCellName
XText xCellText = (XText) UnoRuntime.queryInterface(
XText.class, xTable.getCellByName ( sCellName ) );
// create a text cursor from the cells XText interface
XTextCursor xCellCursor = xCellText.createTextCursor();
System.out.println(xCellText.getString());
// 插入图片到表格
try {
xCellText.insertTextContent(xCellCursor, xTextContent, true);
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}[/code]
2、我以為是WIN的問題,就轉到LINUX SUSE下(最後的產品是要在這裡實現的)
這時候問題更嚴重了。一開始我用的是OOo2.3.0,只能以唯讀模式打開DOC檔,而且不能打開.odt的(連自己的孩子都認不到,說路徑不對)。後來更新到2.3.0,可以正常打開檔了,但是所有的STORE保存方法都用不了(包括TOURL,ASURL)
不知道是我的代碼問題還是OOo的問題,希望大家能幫個忙(原來在WIN開發都OK,就要交工了,結果在suse上測就不行了,有點急!)
[code] //以下为保存方法
com.sun.star.frame.XStorable xStorable = (XStorable)UnoRuntime.queryInterface(
XStorable.class, xWriterComponent);
//保存当前打开的WORD文件
xStorable.store();
//将WORD转成PDF输出,地址若有相同文件则覆盖
PropertyValue[] saveProps = new PropertyValue[2];
saveProps[0] = new PropertyValue();
//设置输出格式,类似的还有StarOffice XML (Writer),MS Word 97等
saveProps[0].Name = "FilterName";
saveProps[0].Value = "writer_pdf_Export";
saveProps[1] = new PropertyValue();
saveProps[1].Name = "Overwrite";
saveProps[1].Value = Boolean.TRUE;
String pdfUrl = "file:///D:/EO1.pdf";
//如果用storeASURL方法则会出错
xStorable.storeToURL(pdfUrl, saveProps);
//关闭WORD文件
xWriterComponent.dispose();[/code]