使用iText和org.w3c.dom.Document旋转PDF

时间:2012-03-27 13:36:01

标签: java pdf-generation itext

我在Java Servlets中使用iText。我正在努力从我的JSP文件中创建PDF。我已经看到这是不可能的,所以我创建了解析字符串(我的HTML页面)的新servlet。这里是部分代码:

StringBuffer buffer = getHTMLinBuffer(consulenti, anUser);
DocumentBuilder builder = DocumentBuilderFactory
    .newInstance().newDocumentBuilder();
Document doc = builder.parse(new ByteArrayInputStream(buffer.toString().getBytes("UTF-8")));
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(doc, null);
String fileName = "listaConsulenti.pdf";
String absolutePath = getServletContext().getRealPath("/");
String tempPath = absolutePath + "temp/";
File file = new File(tempPath, fileName);
file.createNewFile();
OutputStream os = new FileOutputStream(file);
renderer.layout();
renderer.createPDF(os);
os.close();

此代码有效。 现在我必须创建另一个需要将A4页面旋转90°的PDF。使用org.w3c.dom.Document我找不到怎么做。 有可能使用另一个文档类, com.itextpdf.text.Document ,它有旋转()方法来旋转它,但使用此文档我找不到如何解析我的字符串(HTML代码)......

提示?

2 个答案:

答案 0 :(得分:0)

如果你需要的只是一份文件,你可以使用以下内容:

private Document document = new Document(PageSize.A4.rotate());

答案 1 :(得分:0)

...我刚刚发现,iTextRendere不是iText的一部分,而是Flying Source的一部分。 在this link我已经看到,通过向源(X)HTML添加一些css来完成景观页面的创建:

<style type="text/css"> 
@page{ size: 11.69in 8.27in;}
...
</style>