我在java中有一个函数,它包含生成pdf文件并保存到系统本地磁盘的代码。现在根据我的要求,我必须创建一个包含用户可以动态设置日期的表单的jsp页面他需要pdf生成的时间。现在应该根据给定的用户输入生成pdf,用户输入本质上是动态的,可以更改..
例如......
假设用户已经在每个月的15点在上午10点设置了pdf。那么这次应该在15点在上午10点生成pdf ..
现在,如果他的要求发生变化,他可以在每天上午10点将其设置为10个......依此类推......
我无法继续前进..
这是我在POJO文件中的pdf生成代码..
OutputStream file = new FileOutputStream(new File("D://timer.pdf"));
Document document = new Document();
PdfWriter.getInstance(document, file);
//Inserting Table in PDF
PdfPTable table = new PdfPTable(3);
PdfPCell cell = new PdfPCell(new Paragraph("Java4s.com"));
cell.setColspan(3);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setPadding(10.0f);
cell.setBackgroundColor(new BaseColor(140, 221, 8));
table.addCell(cell);
table.addCell("Name");
table.addCell("Address");
table.addCell("Country");
table.addCell("Java4s");
table.addCell("NC");
table.addCell("United States");
table.setSpacingBefore(30.0f); // Space Before table starts, like margin-top in CSS
table.setSpacingAfter(30.0f); // Space After table starts, like margin-Bottom in CSS
//Inserting List in PDF
List list = new List(true, 30);
list.add(new ListItem("Java4s"));
list.add(new ListItem("Php4s"));
list.add(new ListItem("Some Thing..."));
//Text formating in PDF
Chunk chunk = new Chunk("Welecome To Java4s Programming Blog...");
chunk.setUnderline(+1f, -2f);//1st co-ordinate is for line width,2nd is space between
Chunk chunk1 = new Chunk("Php4s.com");
chunk1.setUnderline(+4f, -8f);
chunk1.setBackground(new BaseColor(17, 46, 193));
//Now Insert Every Thing Into PDF Document
document.open();//PDF document opened........
document.add(Chunk.NEWLINE); //Something like in HTML :-)
document.add(new Paragraph("Dear Java4s.com"));
document.add(new Paragraph("Document Generated On - " + new Date().toString()));
document.add(table);
document.add(chunk);
document.add(chunk1);
document.add(Chunk.NEWLINE); //Something like in HTML :-)
document.newPage(); //Opened new page
document.add(list); //In the new page we are going to add list
document.close();
file.close();
System.out.println("Pdf created successfully..");
提前致谢..
答案 0 :(得分:0)
您可以使用java
的Timer和Task类答案 1 :(得分:0)
使用java.util.Timer课程。 this site上有很多例子。
正如评论中提到的那样,ScheduledExecutorService会更好。 (javadoc已经有关于该主题的教程。)