iText表从右到左方向的行跨度(阿拉伯语) [英] iText table rowspan for right to left direction(Arabic)

查看:112
本文介绍了iText表从右到左方向的行跨度(阿拉伯语)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的应用程序使用两种不同的英语和阿拉伯语版本开发. 我已经在iText中使用rowspan和colspan创建了pdf表,该表在英语版本中工作正常,但是在阿拉伯语版本中,rowspan无法正常工作. 当我使用setRunDirection(3)将阿拉伯文本放在表中时,setRowspan(2)无法正常工作.

My application is developed in two different version English and Arabic. I have created pdf table in iText with rowspan and colspan which is working perfectly in English version but in arabic version rowspan is not working. when i'm using setRunDirection(3) to put arabic text in my table,the setRowspan(2) is not working.

请告诉我如何在此处设置rowpan值.

please tell me how set rowspan value here.

请帮助我解决这个问题.

please help me to solve this issue.

谢谢

这是表大小2的列和行跨度2的代码的一部分.

This is part of code for table size 2 column and rowspan 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无法正常工作! 所以我删除这一行并添加:

When I use table.setRunDirection(PdfWriter.RUN_DIRECTION_RTL) RowSpan is NotWorking! so I Remove This Line And Add this:

PdfPCell title_cell= new PdfPCell(new Paragraph("متن عربی"));
title_cell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
table.addCell(title_cell);

我的表格有6列和5行.第一行的右单元格是行跨度5. 我的代码在这里:

My Table have 6 column and 5 Rows. Right cell in First Row is rowspan 5. My Code here:

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);

这篇关于iText表从右到左方向的行跨度(阿拉伯语)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆