iTextPDF:动态更改表格对齐

时间:2014-02-05 11:17:07

标签: java itextsharp itextpdf

我想动态调整iText PdfpTable。

如何在iTextPDF中设置基于x和y位置的对齐方式。

PdfPCell cell;
cell = new PdfPCell(testTable);
cell.setFixedHeight(44f);
cell.setColspan(3);
cell.setBorder(0);
table.addCell(cell);  
table1.addCell(table);

2 个答案:

答案 0 :(得分:1)

请查看此示例...

public static void Main() {


        // step 1: creation of a document-object
        Document document = new Document();


        try {


            // step 2:
            // we create a writer that listens to the document
            // and directs a PDF-stream to a file
            PdfWriter writer = PdfWriter.getInstance(document, new FileStream("Chap1002.pdf", FileMode.Create));


            // step 3: we open the document
            document.Open();


            // step 4: we grab the ContentByte and do some stuff with it
            PdfContentByte cb = writer.DirectContent;


            // we tell the ContentByte we're ready to draw text
            cb.beginText();


            // we draw some text on a certain position
            cb.setTextMatrix(100, 400);
            cb.showText("Text at position 100,400.");


            // we tell the contentByte, we've finished drawing text
            cb.endText();
        }
        catch(DocumentException de) {
            Console.Error.WriteLine(de.Message);
        }
        catch(IOException ioe) {
            Console.Error.WriteLine(ioe.Message);
        }


        // step 5: we close the document
        document.Close();
    }
}

答案 1 :(得分:0)

请查看my book第4章示例的C#端口:http://tinyurl.com/itextsharpIIA2C04

您可以将表格添加到ColumnText对象,并将列添加到绝对位置:

ColumnText column = new ColumnText(writer.DirectContent);
column.AddElement(table);
column.SetSimpleColumn(llx, lly, urx, ury);
column.Go();

在此代码段llx中,lly和urx,ury是页面左下角和列右上角的坐标(请参阅ColumnTable示例)。

PdfCalendar示例中,使用了另一种方法:

table.WriteSelectedRows(0, -1, x, y, writer.DirectContent); 

第一个参数定义了需要绘制的行(0到-1表示所有行),xy定义绝对位置。