私はadfプロジェクトを作成し、itextpdf 5.1.3を使用してレポートを生成しています。 例: - 私のテーブルの顧客は3000行あります。私のjspxページに顧客テーブル&のボタンがあります。ファイルダウンローダのリスナーがあります。私は単にレポートを呼び出しています。 最初の50行(最大4ページ)のレポートのみが生成されます。 残りの行がレポートに表示されないのはなぜですか?itextpdfの最大ページサイズ
private void generatePDFFile(FacesContext facesContext, java.io.OutputStream outputStream) {
try {
DCBindingContainer dcBindings = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
DCIteratorBinding iterBind1 = (DCIteratorBinding)dcBindings.get("CustomerView1Iterator");
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(FILE)); \\file path local disk D:\mywork\customer.pdf
document.open();
Row[] rows= iterBind1.getAllRowsInRange();
for(Row row:rows){
custcode = (String) row.getAttribute("CustomerCode");
custname = (String) row.getAttribute("CustomerNameE");
addgroup(document);
}
document.close();
facesContext = facesContext.getCurrentInstance();
ServletContext context = (ServletContext)facesContext.getExternalContext().getContext();
File file = new File(FILE);
FileInputStream fileInputStream;
byte[] b;
System.out.println(file.getCanonicalPath());
System.out.println(file.getAbsolutePath());
fileInputStream = new FileInputStream(file);
int n = fileInputStream.available();
while (n > 0) {
b = new byte[n];
//b = new byte[8192];
int result = fileInputStream.read(b);
outputStream.write(b, 0, b.length);
if (result == -1)
break;
}
outputStream.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
private static void addgroup(Document document) throws DocumentException{
Paragraph preface1 = new Paragraph();
Paragraph preface2 = new Paragraph();
preface1.add(new Chunk("\n"));
preface1.add(new Chunk("Customer : "+custcode+" "+custname,BlueFont));
preface1.add(new Chunk("\n"));
document.add(preface1);
document.add(preface2);
}
どうか良い質問です。あなたはそれを改善できますか? –
こんにちはブルーノ、 私のテーブルは3000行あります。 pdf世代を呼び出すときは最初の50行だけが来ます。なぜですか? 以下は私のコードです.... –
あなたのコードは以下の通りではありません。何千もの開発者がiTextを使用してPDFを作成し、3000行以上の行を作成しています。なぜアプリケーションが50行しかレンダリングしないのか、私に尋ねるならば、答えは簡単です。何か間違っているからです。あなたは何を間違っているのですか?おそらく、あなたはほぼ6歳のiTextのバージョンを使用すべきではないでしょう。あなたはアップグレードを試みましたか? –