如何使用itext pdf插入页面pdf中的值

时间:2015-09-01 15:05:37

标签: java iterator itext

我试图像这样在pdf中插入值:

String nomeArquivo ="tempRelatorioPDF.pdf";
File file = new File(nomeArquivo);
file.createNewFile();

PdfWriter.getInstance(doc, new FileOutputStream(file)); 
doc.open();     
PdfWriter writer = PdfWriter.getInstance(doc, new `FileOutputStream(nomeArquivo));`
Document doc = new Document(PageSize.A4.rotate());

while(iteratorRow.hasNext()){
   Object valorCelulaRow = iteratorRow.next();

    Paragraph p3 = new Paragraph(); 
    p3.add(colunas[i].getName());
    p3.add("\n"); 
    doc.add((com.itextpdf.text.Element)p3); 

    if(valorCelulaRow != null){

       Paragraph p = new Paragraph(valorCelulaRow.toString());
       doc.add(p); 
}
doc.close();    

显示错误: PDF文件已损坏实际上错误打开文件似乎已损坏。

**

获得此要点之前的调整

** 我使用以下库:

import com.itextpdf.text.Chunk;
import com.itextpdf.text.ListItem;

*>>>>> import com.itextpdf.text.Paragraph;*

...
import com.itextpdf.text.DocumentException;

*>>>>> import com.lowagie.text.Document;*

import com.lowagie.text.Element;
import com.lowagie.text.Font;
...

当撤退评论库并添加迭代时,有一个conlito。 doc.Add错误。

import com.itextpdf.text.Document; 
// import com.lowagie.text.Document;

更改导入参考后的错误

Document doc = new Document(PageSize.A4.rotate());      

//The constructor Document(Rectangle) is undefined

PdfWriter.getInstance(doc, new FileOutputStream(file)); 

PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(nomeArquivo));
//The method getInstance(Document, OutputStream) in the type PdfWriter is not applicable for the arguments (Document, FileOutputStream)

[部分解决]

添加“(com.itextpdf.text.Element)”

为“添加”更改“添加”;

调试数据被加载到变量'p'和'P3'中。但PDF文档是用0kb生成的。

1 个答案:

答案 0 :(得分:0)

这应该有效,我不确定它不会如何。我不认为你应该投任何东西。 Paragraph允许使用String参数直接构造。我认为你希望段落的值valueCellRow.toString()正确吗?

Document doc = new Document(PageSize.A4.rotate());
while(iteratorRow.hasNext()) {
    Object valorCelulaRow = iteratorRow.next();
    if(valorCelulaRow != null) {
        Paragraph p = new Paragraph(valueCellRow.toString());
        doc.Add (p);
    }
}
doc.close();  

如果所有其他方法都失败了,那就是你的库( com.lowagie.text.Element vs com.itextpdf.text.Element )冲突。尝试使用:

doc.Add((com.itextpdf.text.Element) p);

虽然你不应该这样做。