3

私がiTextに関して読んだことはすべて、ページサイズを設定してから新しいページを作成できるはずだと言っています。しかし、何らかの理由でこれを試してみると、最初のページが回転しません。しかし、私の2番目はです。何か案は?

response.setContentType("application/pdf");
Document document = new Document();

try{
    ByteArrayOutputStream buffer = new ByteArrayOutputStream();
    PdfWriter.getInstance(document, buffer); 
    document.open();
    //Start a new page
    document.setPageSize(PageSize.LETTER.rotate()); //  11" x 8.5"  new Rectangle(792f, 612f)

    document.newPage();
    Paragraph topText = new Paragraph();
    // add some content here...
    document.close(); 

    DataOutput dataOutput = new DataOutputStream(response.getOutputStream());
    byte[] bytes = buffer.toByteArray();
    response.setContentLength(bytes.length);

    for(int i = 0; i < bytes.length; i++) {
        dataOutput.writeByte(bytes[i]);
    }

} catch (DocumentException e) {
    e.printStackTrace();
}
4

1 に答える 1

1

document.newPage()実際には、「現在のページを終了して新しいページを開く」という意味です。これはopen()、ドキュメントを作成した後、(ドキュメントが以前に設定したサイズの)空白のページがすでに用意されていることを意味します。

ドキュメントを開く前に、ページサイズを設定する必要があります。

document.setPageSize(PageSize.LETTER.rotate());
document.open();
于 2012-07-05T17:47:24.233 に答える