我试图像这样在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生成的。
答案 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);
虽然你不应该这样做。