2013-02-08 168 views
8

我使用的是開源的http://itextpdf.com/,來創建一些pdf。在iText中設置表格單元格的寬度java pdf

我可以創建一個表,但所有列的寬度都是相同的,我需要更改特定列的寬度。

PdfPTable table = new PdfPTable(6); 
Phrase tablePhrse = new Phrase("Sl n0", normalFontBold); 
    PdfPCell c1 = new PdfPCell(tablePhrse); 
    c1.setHorizontalAlignment(Element.ALIGN_CENTER); 
    table.addCell(c1); 

我找不到任何方法來設置列的寬度,請提出了一些方法來做到實現這一..

+0

您可以使用column.setPreferredWidth(100)的',' – Smit 2013-02-08 17:50:08

+0

我找不到.setPreferredWidth(100)PdfTable或PdfCell下方法.. – indra 2013-02-08 18:03:02

+0

對不起,我誤會了。我認爲你可以使用'table.setTotalWidth(); '和'table.setWidths(); ' – Smit 2013-02-08 18:17:21

回答

18

您可以使用setWidths()方法。

table.setWidths(new int[]{200,50}); 

public void setWidths(int[] relativeWidths)

+2

數組中的itens數量必須與PdfPTable構造函數中定義的列數相同 – dellasavia 2015-02-11 18:01:54

+0

@dellasavia:謝謝你指出,但這是一個例子。 – Smit 2015-02-17 22:47:57

0

以下是更正後的,如果table.setWidths(new int[]{200,50});不起作用。

innertable.setWidthPercentage(50); 
0

大家好..
嘗試。

float[] columnWidths = new float[]{10f, 20f, 30f, 10f}; 
table.setWidths(columnWidths); 
+0

你認爲你的代碼在接受的答案中的優勢是什麼? – mkl 2017-04-04 09:41:37