2014-11-24 101 views
0

繪製表側創建了兩個隨後XWPFTable當我試圖以編程方式創建一個Word文檔,但是,第二個表被置於僅低於第一個。
我希望它們並排顯示。的Apache POI - 如何通過側XWPFDocument

我試圖減少表的大小,使他們能夠適應一半的頁面寬度,但表的配置並沒有改變。

有什麼辦法來顯示他們並排側? 我懷疑這與文檔的XMLCursor有關,但我找不到正確移動它的方法。

XWPFDocument document = new XWPFDocument(); 

XWPFTable table = document.createTable(3,3); 
CTTblWidth width = table.getCTTbl().addNewTblPr().addNewTblW(); 
width.setType(STTblWidth.PCT); 
width.setW(BigInteger.valueOf(2500)); 
table.getCTTbl().getTblPr().addNewJc().setVal(STJc.LEFT); 

XWPFTable table2 = document.createTable(2,2); 
CTTblWidth width2 = table2.getCTTbl().addNewTblPr().addNewTblW(); 
width2.setType(STTblWidth.PCT); 
width2.setW(BigInteger.valueOf(2400)); 

table2.getCTTbl().getTblPr().addNewJc().setVal(STJc.RIGHT); 

/* write to OutputStream */ 

感謝您的幫助。

回答

0

表是一個塊級項目,這意味着它會佔用的垂直空間,根據其高度和跨度在頁面的右邊距,不管它使用的空間或沒有。所以沒有辦法以並排的方式「並排」兩個表格,因爲沒有辦法使兩個段落並排。

有幾種方法可以達到這種效果,但在您的情況下可能最直接的方法是創建一個三行三列的表格,並將左表格放入第一個單元格和右表格中第三欄。中間的列可以用來影響兩者之間的間距。

你可能不希望在表中的任何邊界,因爲它是用來格式化而不是顯示。

+0

感謝@scanny的回答,但我認爲,一旦固定頁面尺寸高度都可以找到。具有單個表的解決方法可以定義工作,但我寧願將它們分開。 – 2014-11-25 10:46:53

+0

我想你可能會誤解我的答案。我在說你應該把兩張桌子並排放在一個「容器」表中,而不是把兩張桌子合併成一張桌子。容器表將用於佈局目的,而不是包含它自己的直接內容。表格單元格可以包含嵌套表格以及能夠包含文本段落。 – scanny 2014-11-26 08:17:02