java中如何用列表元素填充表格

java中如何用列表元素填充表格,java,pdfbox,Java,Pdfbox,我想生成一个标题为Number、Status和count的表 然后希望用从列表中获得的元素中的数据填充表 编号为s.no,状态为从列表和 count是元素在列表中退出的次数。 但我不知道如何使用pdf框生成表格并生成pdf。 我正常生成了pdf,但不知道如何制作表格。 我想在表中添加itr作为表数据…请帮助我 public PerformResult perform(CronJobModel arg0) { final String method_name = "getListBySta

我想生成一个标题为Number、Status和count的表

然后希望用从列表中获得的元素中的数据填充表

编号为s.no,状态为从列表和 count是元素在列表中退出的次数。 但我不知道如何使用pdf框生成表格并生成pdf。 我正常生成了pdf,但不知道如何制作表格。 我想在表中添加itr作为表数据…请帮助我

public PerformResult perform(CronJobModel arg0)
{
    final String method_name = "getListByStatus";

    LOG.debug("Entering - " + method_name);
    List<String> orderModelList = osiReportGenerate.getStatusList();

    // Check if the order list is empty
    if (CollectionUtils.isNotEmpty(orderModelList)) {
        Iterator<String> itr=orderModelList.iterator();
        int y=670,x=600,no=1;

        PDDocument document;
        try
        {
            System.out.println("hello cron job");
            document = new PDDocument();

            PDPage page = new PDPage();
            document.addPage(page);
            PDFont font = PDType1Font.HELVETICA_BOLD;
            PDPageContentStream contentStream = new PDPageContentStream(document, page);
            //DrawString for Number to pdf
            contentStream.beginText();
            contentStream.setFont( font, 12 );
            contentStream.moveTextPositionByAmount( 10,y );
            contentStream.drawString("Number");
            contentStream.endText();
            //DrawString for status to pdf
            contentStream.beginText();
            contentStream.setFont( font, 12 );
            contentStream.moveTextPositionByAmount( 200,y );
            contentStream.drawString("Status");
            contentStream.endText();
            //DrawString for count to pdf
            contentStream.beginText();
            contentStream.setFont( font, 12 );
            contentStream.moveTextPositionByAmount( 400,y );
            contentStream.drawString("Count");
            contentStream.endText();

            while(itr.hasNext()){
                //for printing numbers.....
                contentStream.beginText();
                contentStream.setFont( font, 12 );
                contentStream.moveTextPositionByAmount( 10,x );
                contentStream.drawString(""+no);
                contentStream.endText();
                no++;
                //For printing status....
                contentStream.beginText();
                contentStream.setFont( font, 12 );
                contentStream.moveTextPositionByAmount( 200,x );
                contentStream.drawString(itr.next());
                contentStream.endText();
                x=x-25;
            }

            PDXObjectImage ximage = new PDJpeg(document, new        FileInputStream("C:\\Users\\Dell\\Downloads\\rr.jpg"));
            System.out.println("1");

            System.out.println("2");
            //DrawImage for to pdf
            contentStream.drawImage(ximage,10,680);
            System.out.println("3");


            //contentStream.endText();
            contentStream.close();
            Date date=new Date();
            int filename=date.getSeconds();
            document.save("D:\\"+filename+".pdf");
            document.close();


        }

        catch (Exception e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }



    }
    return new PerformResult(CronJobResult.SUCCESS, CronJobStatus.FINISHED);
           }
public PerformResult perform(CronJobModel arg0)
{
最终字符串方法\u name=“getListByStatus”;
LOG.debug(“输入-”+方法名称);
List orderModelList=osiReportGenerate.getStatusList();
//检查订单列表是否为空
if(CollectionUtils.isNotEmpty(orderModelList)){
迭代器itr=orderModelList.Iterator();
int y=670,x=600,no=1;
PDA文件;
尝试
{
System.out.println(“hello cron作业”);
文档=新的PDDocument();
PDPage page=新PDPage();
文件。添加页(第页);
PDFont font=PDType1Font.HELVETICA_粗体;
PDPageContentStream contentStream=新的PDPageContentStream(文档,页面);
//用于将数字转换为pdf的抽绳
contentStream.beginText();
setFont(字体,12);
contentStream.moveTextPositionByAmount(10,y);
contentStream.drawString(“数字”);
contentStream.endText();
//状态为pdf的抽绳
contentStream.beginText();
setFont(字体,12);
contentStream.moveTextPositionByAmount(200,y);
contentStream.drawString(“状态”);
contentStream.endText();
//用于计数到pdf的抽绳
contentStream.beginText();
setFont(字体,12);
contentStream.moveTextPositionByAmount(400,y);
contentStream.drawString(“Count”);
contentStream.endText();
while(itr.hasNext()){
//用于打印数字。。。。。
contentStream.beginText();
setFont(字体,12);
contentStream.moveTextPositionByAmount(10,x);
contentStream.drawString(“+no”);
contentStream.endText();
否++;
//用于打印状态。。。。
contentStream.beginText();
setFont(字体,12);
contentStream.moveTextPositionByAmount(200,x);
contentStream.drawString(itr.next());
contentStream.endText();
x=x-25;
}
PDXObjectImage ximage=新的PDJpeg(文档,新文件输入流(“C:\\Users\\Dell\\Downloads\\rr.jpg”);
系统输出打印项次(“1”);
系统输出打印项次(“2”);
//DrawImage for to pdf
contentStream.drawImage(ximage,10680);
系统输出打印项次(“3”);
//contentStream.endText();
contentStream.close();
日期=新日期();
int filename=date.getSeconds();
保存(“D:\\”+文件名+”.pdf”);
document.close();
}
捕获(例外e)
{
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
返回新的PerformResult(CronJobResult.SUCCESS,CronJobStatus.FINISHED);
}

到目前为止,您尝试了什么?给我们这些代码,告诉我们你到底被困在哪里,这样我们就可以帮助你。我已经编写了一个生成分页表的小工作示例,可以在这里找到:我相信它能够帮助你。