我想使用 itext 生成一个 pdf。我会在某些时候添加内容以进行分页。我需要插入几个单独的 conenidos 依赖源,所以我要求用户在单独的页面上这样做。有任何想法吗???
问问题
48768 次
2 回答
53
任何在 iText7 中寻找解决方案的人,请使用来自@BadLeo 的解决方案,即使用document.add(new AreaBreak());
以下答案适用于 7 之前的版本。
调用document.newPage()
告诉 iText 将后续对象放置在新页面上。只有在您放置下一个对象时,才会真正创建新页面。此外,newPage()
仅当当前页面不为空白时才创建新页面;否则,它被忽略;你可以用它setPageBlank(false)
来克服它。
请参阅下面的链接以获取示例: http: //itextpdf.com/examples/iia.php ?id=99 (编辑:dead 404)
由于上述链接已失效,因此为直到使用 iText7 之前版本的任何人添加示例代码。
/**
* Creates from the given Collection of images an pdf file.
*
* @param result
* the output stream from the pdf file where the images shell be written.
* @param images
* the BufferedImage collection to be written in the pdf file.
* @throws DocumentException
* is thrown if an error occurs when trying to get an instance of {@link PdfWriter}.
* @throws IOException
* Signals that an I/O exception has occurred.
*/
public static void createPdf(final OutputStream result, final List<BufferedImage> images)
throws DocumentException, IOException
{
final Document document = new Document();
PdfWriter.getInstance(document, result);
for (final BufferedImage image : images)
{
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "png", baos);
final Image img = Image.getInstance(baos.toByteArray());
document.setPageSize(img);
document.setPageBlank(false);
document.newPage();
img.setAbsolutePosition(0, 0);
document.add(img);
}
document.close();
}
于 2013-06-19T18:21:19.367 回答
20
对于 iText7 尝试:
document.add(new AreaBreak());
来源:http: //itextsupport.com/apidocs/itext7/7.0.0/com/itextpdf/layout/element/AreaBreak.html
于 2016-11-11T09:09:51.607 回答