2013-06-20 22 views
6

Khi tôi sử dụng sự liên kết của các tế bào nên nó hoạt động:iTextSharp: Thuộc tính căn chỉnh nào được sử dụng trong PdfPCell?

PdfPCell cell1 = new PdfPCell(new Phrase("Text" , Font)); 
cell1.HorizontalAlignment = 2; 

Nhưng một khi sự liên kết không hoạt động:

PdfPCell cell1 = new PdfPCell(); 
cell1.AddElement(new Phrase("Text 1", Font)); 
cell1.AddElement(new Phrase("Text 2", Font)); 
cell1.HorizontalAlignment = 2; 

Lý do?

Trả lời

8

Bạn đang bối rối chế độ văn bản với chế độ tổng hợp.

Trong đoạn mã đầu tiên, bạn làm việc ở chế độ văn bản . Điều này có nghĩa rằng nội dung của ô được coi là văn bản duy nhất và các thuộc tính của ô được tôn trọng, trong khi các thuộc tính của các phần tử được thêm vào ô được bỏ qua.

Trong đoạn mã thứ hai, bạn làm việc ở chế độ tổng hợp. Một ô chuyển sang chế độ tổng hợp thời điểm bạn sử dụng phương thức AddElement(). Trong trường hợp này, các thuộc tính của ô được bỏ qua. Thay vào đó các thuộc tính của các phần tử được sử dụng.

Ví dụ: ở chế độ văn bản, nội dung của ô chỉ có thể có một loại căn chỉnh. Trong chế độ tổng hợp, bạn có thể có một đoạn văn được căn trái, một đoạn văn được căn giữa và một đoạn thẳng hàng, tất cả trong cùng một ô.

+0

Vì vậy, trong 'Chế độ văn bản', bạn không thể có một ô có' cell.HorizontalAlignment = Element.ALIGN_CENTER' + 'cell.VerticalAlignment = Element.ALIGN_MIDDLE'. Đó là một lựa chọn hoặc khác, không phải cả hai sắp xếp cùng một lúc? –

+0

Trong chế độ * tổng hợp * (không * chế độ văn bản *), bất kỳ giá trị nào được đặt cho 'cell.HorizontalAlignment' sẽ bị bỏ qua theo hướng căn chỉnh ngang của các phần tử trong ô. Tôi không nói gì về căn chỉnh theo chiều dọc. Đó không phải là thuộc tính của 'Đoạn',' Hình ảnh', ... –

4

Bây giờ có, nó đã hoạt động.

PdfPCell cell1 = new PdfPCell(); 
Paragraph p1 = new Paragraph("Text 1", Font); 
p1.Alignment = Element.ALIGN_RIGHT; 
Paragraph p2 = new Paragraph("Text 2", Font); 
p2.Alignment = Element.ALIGN_RIGHT; 

cell1.AddElement(p1); 
cell1.AddElement(p2); 

Cảm ơn bạn.

+0

Ha câu trả lời này thực sự có một mẫu mã hoạt động –

Các vấn đề liên quan