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