Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java iText rotate()元';t确定第一页的方向_Java_Itext - Fatal编程技术网

Java iText rotate()元';t确定第一页的方向

Java iText rotate()元';t确定第一页的方向,java,itext,Java,Itext,我读到的关于iText的所有内容都说,您应该能够设置页面大小,然后创建一个新页面。但由于某些原因,当我尝试这一点时,我的第一页没有旋转。但我的第二个问题是。有什么想法吗 response.setContentType("application/pdf"); Document document = new Document(); try{ ByteArrayOutputStream buffer = new ByteArrayOutputStream(); PdfWriter.g

我读到的关于iText的所有内容都说,您应该能够设置页面大小,然后创建一个新页面。但由于某些原因,当我尝试这一点时,我的第一页没有旋转。但我的第二个问题是。有什么想法吗

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();
}
response.setContentType(“application/pdf”);
文档=新文档();
试一试{
ByteArrayOutputStream缓冲区=新建ByteArrayOutputStream();
getInstance(文档,缓冲区);
document.open();
//翻开新的一页
document.setPageSize(PageSize.LETTER.rotate());//11英寸x 8.5英寸新矩形(792f、612f)
document.newPage();
段落topText=新段落();
//在这里添加一些内容。。。
document.close();
DataOutput DataOutput=新的DataOutputStream(response.getOutputStream());
byte[]bytes=buffer.toByteArray();
response.setContentLength(bytes.length);
for(int i=0;i
document.newPage()的真正意思是“完成当前页面并打开一个新页面”。这意味着在
open()
一个文档之后,您已经准备好了一个空白页面(无论文档之前设置的大小)

打开文档前,应设置页面大小:

document.setPageSize(PageSize.LETTER.rotate());
document.open();

在调用
document.open()
之前,请尝试设置页面大小。IIRC,
document.newPage()
的真正意思是“完成当前页面,然后开始一个新页面”,即打开文档时有一个空白页面可供使用。完美。谢谢你的帮助。如果成功了,我会把它作为答案发布。还有:你为什么要用
DataOutputStream
一个字节一个字节地写出PDF?如果它是动态生成的,您还可以直接将其写入HTTP响应输出流;或者,如果您真的希望公布内容长度,只需写出字节数组,而不是现在的字节数组,使用
PdfWriter.getInstance(document,response.getOutputStream())
并删除DataOutputStream和ByteArrayOutputStream。