ps:我用的版本是7.0.5

场景:

左侧第一列宽度不够,导致数据换行。

Table table = new Table(new float[2]);

new 一个Table之后,setWidthPercent()这个参数是这是所有列宽,并不能试用个别列。

需要在写入数据的时候对各个列进行自定义列宽:

Cell cell=new Cell().setWidth(70).setBorder(Border.NO_BORDER).setHorizontalAlignment(HorizontalAlignment.RIGHT).add(new Paragraph(entry.getKey()).setFont(sysFont).setFontSize(10));

Cell cell1=new Cell().setBorder(Border.NO_BORDER).setHorizontalAlignment(HorizontalAlignment.LEFT).add(new Paragraph(entry.getValue()).setFont(sysFont).setFontSize(10));

cell为第一列,cell1为第二列,在cell中设置宽度,不要再table上设置宽度。

即可解决个别列宽问题。

调整后的效果:

补充:java通过itext生成PDF,设置单元格cell的最大高度 以及 itext7初尝

网上百度java生成pdf都是很老的代码,使用的是itext5,找遍了大江南北都找不到设置表格或单元格最大高度,或者绝对定位表格的实现,最后对table和cell的方法一个一个找,找到了满足要求的方法:

cell.setMaxLines(int numberOfLines)

由于字体确定,每行字体的高度已确定,设定最大行数也就设定了最大高度,且避免了设置的高度不是每行高度的整数倍的麻烦,itext的这个操作也挺6,只是不符合一般认知,无法轻易找到这个方法。

虽然cell最大高度解决了,但是表格的绝对定位依然没有解决,itext5只能通过百分比的方式设置表格宽度,然后居中或靠左靠右显示,非常不灵活。

经查询,itext7是目前最新版,试用了一下,非常灵活,该解决的问题都解决了。用法与5有稍许区别。

iText7示例

import com.itextpdf.io.font.PdfEncodings;

import com.itextpdf.kernel.color.Color;

import com.itextpdf.kernel.font.PdfFont;

import com.itextpdf.kernel.font.PdfFontFactory;

import com.itextpdf.kernel.geom.PageSize;

import com.itextpdf.kernel.pdf.PdfDocument;

import com.itextpdf.kernel.pdf.PdfWriter;

import com.itextpdf.kernel.pdf.action.PdfAction;

import com.itextpdf.layout.Document;

import com.itextpdf.layout.border.DashedBorder;

import com.itextpdf.layout.element.Cell;

import com.itextpdf.layout.element.Link;

import com.itextpdf.layout.element.Paragraph;

import com.itextpdf.layout.element.Table;

/**

* @author belle.wang

* @version V1.0.0

* @Description

* @date 2017/7/19 0019 上午 11:37

*/

public class Main {

public static void main(String[] args) {

try {

PdfDocument pdfDoc = new PdfDocument(new PdfWriter("d:\\Helloworld.pdf"));

Document document = new Document(pdfDoc, PageSize.A4);

// 支持系统字体(支持中文)

PdfFontFactory.registerSystemDirectories();

PdfFont chinese = PdfFontFactory.createRegisteredFont("microsoft yahei", PdfEncodings.IDENTITY_H);

// 文字

Paragraph phrase = new Paragraph();

phrase.setFont(chinese);

phrase.add("雷猴啊");

Link chunk = new Link("European Business Award!",

PdfAction.createURI("http://www.baidu.com"));

phrase.add(chunk);

// 图片

// Image img = new Image(ImageDataFactory.create("src/main/resources/img/magic.png"));

// img.setFixedPosition(80, 560);//有传页数参数的方法

// 表格

Table table = new Table(new float[]{200f, 100f});

table.setWidth(300);

table.setBorder(new DashedBorder(Color.BLUE, 2));

table.setFixedPosition(300f,300f,300f);

table.addCell(phrase);

// The complete cell is a link:

Cell cell = new Cell().add("Help us win a European Business Award!");

table.addCell(cell);

document.add(table);

document.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

所以以后做功能,百度大法虽好,也要有自己的灵活性,遇到问题多角度解决,技术在更新,思路也要更新

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

java中设置表格的宽度_java 画pdf用itext调整表格宽度、自定义各个列宽的方法相关推荐

  1. java设置表格第一列长度_java 画pdf用itext调整表格宽度、自定义各个列宽的方法...

    ps:我用的版本是7.0.5 场景: 左侧第一列宽度不够,导致数据换行. table table = new table(new float[2]); new 一个table之后,setwidthpe ...

  2. java中设置游戏的倒计时_java中关于倒计时的程序

    以下是关于java中关于倒计时的程序,当然是采用SWING图形显示 源码一: import java.awt.*; import java.awt.event.*; import java.util. ...

  3. 计算机设置单元格行高,word表格调整(行高、列宽、单元格宽度)方法技巧-行距怎么设置...

    在word中使用表格经常需要针对性调整其行高与列宽,有时侯也需要对某个单元格单独调整宽度(需要注意的是:单元格不能单独调整高度.针对整个表格只有宽度调整.表格高度是通过对每一行的高度来调整.) 表格大 ...

  4. java 千位分隔符_如何在Java中设置千位分隔符?

    问题 如何在Java中设置千位分隔符?我有BigDecimal的String表示,我想设置千位分隔符并返回String. #1 热门回答(180 赞) 你可以使用格式功能","; ...

  5. java中如何设置字体样式_如何在JAVA中设置字体样式和大小?

    我是新来的Java和无法弄清楚如何格式化我的代码是这样的: 字体"宋体"字体大小"9"大胆如何在JAVA中设置字体样式和大小? 我想整个段落的格式化文本.我真的 ...

  6. java中的this的用法_java中this的用法

    This,英语单词,发音:[英][ðɪs][美][ðɪs].常翻译为:这,这么.java中this的用法有哪些呢?本文是学习啦小编整理java中this的用法的资料,仅供参考. java中this的用 ...

  7. java中把gui插入图片_在java中使用图片实现gui的美化.pdf

    在java中使用图片实现gui的美化.pdf 还剩 3页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 图形图像处理GRAPHICS AND IMAGE ...

  8. LabVIEW 调整Table表格行高列宽的方法与例程

    LabVIEW 调整Table表格行高列宽的方法与例程 在 VI 运行时,可以用两种不同的方式更改表中的列宽度.首先,可以用鼠标更改它们:其次,可以通过属性节点编程更改它们. 手部更列表的宽度 只有在 ...

  9. php单元格字体颜色,PHPExcel API接口用法大全,按模板导入excel,美化excel,导出图片,设置单元格字体颜色背景色边框,合并单元格,设置行高列宽...

    PHPExcel API接口用法大全,按模板导入excel,美化excel,导出图片,设置单元格字体颜色背景色边框,合并单元格,设置行高列宽 2020-08-31 85 一:读取excel表模板$ph ...

最新文章

  1. 深度学习初学者必备资料整理
  2. python各种读取图像方法
  3. MyBatis 源码解读-objectFactoryElement()、objectWrapperFactoryElement()
  4. 仿58 php框架源码,转转最新源码
  5. 单片机c语言字符,单片机C语言中变量的定义方法解析
  6. 力扣 746 使用最小化花费爬楼梯
  7. 关于笔算递归的通用算法——迭代
  8. 同期两篇 Nature:运行温度高于 1K 的量子计算平台问世!
  9. 《魔兽世界插件》教程---21点扑克游戏 Blackjack
  10. python课程开课吧怎么样-年薪30万,未来十年大量缺人,这个技能在金融圈到底有多吃香?...
  11. codeIgniter3 学习笔记二(基于 MVC 开发模式实现小案例)
  12. php 执行任务,php多进程执行任务的说明
  13. UVA 10098 Generating Fast
  14. 参考文献中英文人名_参考文献英文人名的缩写规则
  15. 【pandas】--DataFrame数据筛选(二)
  16. 修改并完善框架协议、合同的类型、有效期及目标值等
  17. PayPal集成标准版案例(asp.net)关键源码
  18. IG赢了,让我们先理直气壮的喊出那句 我们是冠军!
  19. 用Python画圣诞树
  20. linux如何识别3t硬盘分区,linux下,给3T硬盘分区,parted命令出现问题,无法分区!!!!急!!...

热门文章

  1. android+酷炫动画效果,Android酷炫动画效果之3D星体旋转效果
  2. 计算机网考 总结范文,年终工作总结范文_2017考研:计算机网络复习核心_沪江英语...
  3. 鸢尾花、葡萄酒分类数据集
  4. VPP snort插件
  5. 生成word文件痕迹列表,定位光标到痕迹所在页
  6. 计算机的数学发展史论文,数学史毕业论文
  7. 城市三维地理信息可视化 技术解析
  8. 汲取ing《凤凰男与凤凰女》转自Baidu.
  9. qq解除人脸识别_腾讯人脸识别怎么解除
  10. 人类生来真的平等吗?