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文件流的问题!急

    朋友你好,用使用 javadoc 标记可以做到.具体说明如下:: javadoc 标记是插入文档注释中的特殊标记,它们用于标识代码中的特殊引用.javadoc 标记由"@"及其后所 ...

  3. java map取第一个元素_Java 8从Map中的匹配值中提取第一个键

    假设我有一个给定名称,姓氏对的地图,并且我想要找到该地图中具有匹配一定值的姓氏的第一个条目的给定名称. 我们将如何以 java 8方式做到这一点. 在我下面的测试用例的例子中,我提出了两种方法. 然而 ...

  4. java设置器或访问器_java里面的构造器、设置器、访问器的作用

    java里面的构造器是一个与类同名的特殊的方法,称为构造方法,在创建类的对象时使用,用于对象初始化. 设置器是一个针对类的某个私有属性成员属性的有特殊命名要求的方法,发XXX属性,应为setXXX.主 ...

  5. matlab画第一布里渊区,计算做图画出石墨烯蜂窝格子的倒格子和第一布里渊区用matlab画.PDF...

    计算做图画出石墨烯蜂窝格子的倒格子和第一布里渊区用matlab画 Homework1 10/31/2016 1. 计算做图画出石墨烯蜂窝格子的倒格子和第一布里 渊区,用matlab画出石墨烯的能带关系 ...

  6. java map取第一个元素_Java Set接口 Map 与枚举

    Set接口 概述 一个不包含重复元素的 collection.更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素 特点 Set接口是 ...

  7. java set删除第一个元素_Java面试题10(如何取到set集合的第一个元素)

    1.如何取到set集合的第一个元素. public static voidmain(String[] args) { Set set= newHashSet(); set.add("xixi ...

  8. java html 字符串截取字符串长度_Java截取带html标签的字符串,再把标签补全(保证页面显示效果)...

    一般是用在字符串中有html标签的截取. 如: 后台发布用了在线编辑器, 前台显示内容要截取的情况. import Java.util.ArrayList; import java.util.List ...

  9. java基本数据类型所占长度_java基本数据类型长度详解

    java基本数据类型 基础知识 机器数和真值 机器数 一个数在计算机中的二进制表示形式,叫做这个数的机器数 机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1 例如: dec ...

最新文章

  1. C++ Priority Queues(优先队列)
  2. 音视频技术开发周刊 | 155
  3. SAP云平台上的Low Code Development(低代码开发)解决方案
  4. matlab内维尔差值代码,计算方法上机练习数值积分(包括两次作业).PDF
  5. 前端学习(2866):自定义组件库效果演示
  6. Jmeter BeanShell采样器提取接口响应写入csv文件(四)
  7. Java 8 Stream API详解
  8. SAP License:客户统驭科目某天余额取数逻辑
  9. c语言火车票管理系统360问答,C语言 车票管理系统 前面一点点的程序,不知道报错是什么意思,可以解释一下吗?代码的具体问题是什么...
  10. linux halt 命令详解
  11. 2021全国研究生数学建模竞赛E题思路
  12. 密码学中数论和有限域基本概念
  13. 使用 Amazon Lake Formation 和 Amazon Glue 设计数据网格架构
  14. win10系统个人服务器配置,个人电脑win10配置服务器吗
  15. matlab中利用xy求取多项式z,matlab基础练习题
  16. 2021程序员必看面试指南-进大厂年薪百万需要付出多少努力?你看看你们配吗......
  17. Java实现生成和解析二维码
  18. 晨枫U盘维护工具V2.0版
  19. 安卓运行exe文件_【按键精灵教程】RunApp 运行命令
  20. 3ds max 结合透视匹配重构高变形的场景

热门文章

  1. RTL基本知识:VCD内部解剖
  2. 软件工程(三)暑假班
  3. 重磅 | 美格智能发布新一代5G CPE解决方案,构建大带宽5G FWA连接
  4. python里init什么意思_Python中 __init__的通俗解释是什么?
  5. 游戏商店系统定时限购玩法设计是否合理
  6. 第三天 Dos命令的学习
  7. Loadrunner教程--常用操做流程
  8. 微信小程序获取手机号组件或即将迎来升级及收费
  9. 源于魔兽!《植物大战僵尸》成功奥秘
  10. 从Apache的日志文件收集和提供统计数据(一个Python插件架构的简单实现)