栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何调整PdfPTable的大小以适合页面?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何调整PdfPTable的大小以适合页面?

如果要使表格适合页面,则应在考虑页面大小之前创建表格,并像TableHeight示例中一样询问表格的高度。请注意,

getTotalHeight()
除非您定义表格的宽度,否则该方法将返回0。可以这样完成:

    table.setTotalWidth(width);    table.setLockedWidth(true);

现在,您可以创建一个

document
带有大小的,
Rectangle(0, 0, width + margin * 2,getTotalHeight() + margin * 2)
并且当使用
writeSelectedRows()
方法添加文档时,表格应该恰好适合文档。

如果您不希望自定义页面大小,则需要

PdfTemplate
使用表的大小创建一个并将表添加到此模板对象。然后,将模板对象包装在中,
Image
然后使用
scaleToFit()
来缩小表的大小。

public static void main(String[] args) throws documentException, FileNotFoundException, IOException {    String TARGET = "temp.pdf";    document document = new document(PageSize.A4);    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(TARGET));    document.open();    PdfPTable table = new PdfPTable(7);    for (int i = 0; i < 700; i++) {        Phrase p = new Phrase("some text");        PdfPCell cell = new PdfPCell();        cell.addElement(p);        table.addCell(cell);     }    table.setTotalWidth(PageSize.A4.getWidth());    table.setLockedWidth(true);    PdfContentByte canvas = writer.getDirectContent();    PdfTemplate template = canvas.createTemplate(table.getTotalWidth(), table.getTotalHeight());    table.writeSelectedRows(0, -1, 0, table.getTotalHeight(), template);    Image img = Image.getInstance(template);    img.scaleToFit(PageSize.A4.getWidth(), PageSize.A4.getHeight());    img.setAbsolutePosition(0, (PageSize.A4.getHeight() - table.getTotalHeight()) / 2);    document.add(img);    document.close();}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/440594.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号