如何使用iTextPDF创建段落?

时间:2017-04-10 19:20:46

标签: java itext

我有这个移动应用程序,我需要将数据库的某些行导出为pdf。我需要一个pdf结构才能正确放置信息。这是我的代码,但由于某种原因,PDF空白。主要目标是在开头有一个标题,然后在数据库中有一行,然后是“输入”并再次显示数据库查询结果中的另一行。希望有人可以帮助我吗?谢谢高级:)

Document doc = new Document();
String outPath = Environment.getExternalStorageDirectory() + "/"+nomePDF+".pdf";

try {
    PdfWriter.getInstance(doc, new FileOutputStream(outPath));
    Font f=new Font(Font.FontFamily.TIMES_ROMAN,30.0f,Font.UNDERLINE, BaseColor.RED);
    Paragraph p = new Paragraph("Group/Machine",f);
    p.setAlignment(Element.ALIGN_CENTER);
    p.setSpacingAfter(40f);
    doc.add(p);
    bd = new Databse(MainActivity.this);

    Cursor c = bd.getGroupsNamesMachines();
    if (c.moveToFirst()) {
        do {
            String group = c.getString(c.getColumnIndex("groupname"))+"\n"+c.getString(c.getColumnIndex("otherrow"));
            doc.add(new Paragraph(group));
            doc.add(new Paragraph("\n"));

        } while (c.moveToNext());
    }

doc.open();
doc.close();

我的目标是:

TITLE

row1
row2

row2
row2

1 个答案:

答案 0 :(得分:1)

您尝试在打开内容之前向Document doc添加内容!

Document doc = new Document();
PdfWriter.getInstance(doc, new FileOutputStream(outPath));
[...]
doc.add(p);
[...]
        doc.add(new Paragraph(group));
        doc.add(new Paragraph("\n")); 
[...]
doc.open();
doc.close();

doc.open()来电移至PdfWriter.getInstance来电与首次doc.add来电之间的位置。