我的应用程序是用英语和阿拉伯语两种不同版本开发的。我在iText中用rowspan和colspan创建了pdf表格,它在英语版本中运行良好,但在阿拉伯语版本中rowspan不起作用。当我使用setRunDirection(3)在表中放入阿拉伯文本时,setRowspan(2)不起作用。
请告诉我如何在这里设置rowspan值。
请帮我解决这个问题。
感谢
这是表大小2列和行跨度2的代码的一部分。
BaseFont base=BaseFont.createFont("C:/Windows/Font/arial.ttf",BaseFont.IDENTITY_H,BaseFont.EMBEDDED);
Font sourceFont= new Font(base, 9,Font.NORMAL,Color.RED);
PdfPTable tab1=new PdfPTable(2);
tab1.setRunDirection(3);//**(if you comment this line it will work)**
PdfPCell cells;
cells=new PdfPCell(new Paragraph("arabic text", sourceFont));
cells.setRowspan(2);
tab1.addCell(cells);
cells=new PdfPCell(new Paragraph("arabic text", sourceFont));
tab1.addCell(cells);
cells=new PdfPCell(new Paragraph("arabic text", sourceFont));
tab1.addCell(cells);
当我使用table.setRunDirection(PdfWriter.RUN_DIRECTION_RTL)
时,RowSpan无效!所以我删除这行并添加这个:
PdfPCell title_cell= new PdfPCell(new Paragraph("متن عربی"));
title_cell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
table.addCell(title_cell);
我的表有6列5行。第一行的右侧单元格是第5行。我的代码在这里:
PdfPTable table = new PdfPTable(new float[] {10,10,10,10,10,50});
table_mehr.setTotalWidth(PageSize.A4.getWidth()-30);
table_mehr.setLockedWidth(true);
table_mehr.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
PdfPCell title_cell = new PdfPCell(new Paragraph("متن عربی"));
title_cell.setRowspan(5);
title_cell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
table.addCell(title_cell);
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
table.addCell("ali");
doc.add(table);