添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

网上百度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生成pdf都是很老的代码,使用的是itext5,找遍了大江南北都找不到设置表格或单元格最大高度,或者绝对定位表格的实现,最后对table和cell的方法一个一个找,找到了满足要求的方法:cell.setMaxLines(int numberOfLines)由于字体确定,每行字体的高度已确定,设定最大行数也就设定了最大高度,且避免了设置的高度不是每行高度的整数倍的麻烦,itext的这...
java 处理 pdf 文档,比如:在特定位置插入图片,签名,需要计算 pdf 的宽度, 高度 1.项目结构 和引用类库除了标准 java jdk库外,还需引入下图表示的两个jar2.具体实现代码:import java .io.FileInputStream; import java .io.IOException; import com. itext pdf .text.Document; import com.i...
Spire. PDF for Java 支持通过 Pdf Grid 类和 Pdf Table 类在 PDF 页面中绘制 表格 ,在“ Java 创建并格式并 PDF 表格 ”一文中介绍了如何绘制 表格 。本篇文章将介绍使用 Pdf TableExtractor 类来提取 PDF 中的 表格 的方法。 安装 Spire. PDF for Java 首先,您需要在 Java 程序中添加 Spire. Pdf .jar 文件作为依赖项。您可以从这个链接下载 JAR 文件;如果您使用 Maven,则可以通过在 pom.xml 文件中添加以下
网上百度 java 生成 pdf 都是很老的代码,使用的是 itext 5,找遍了大江南北都找不到 设置 表格 单元格 最大 高度 ,或者绝对定位 表格 的实现,最后对table和 cell 的方法一个一个找,找到了满足要求的方法: cell . set Max Lines (int numberOf Lines ) 由于字体确定,每行字体的 高度 已确定,设定 最大 行数也就设定了 最大 高度 ,且避免了 设置 高度 不是每行 高度 的整数倍的麻烦,i
Excel 表格 中,由于各种数据的复杂性,可能存在 单元格 中的数据字号大小、数据内容长度不一而出现,列宽过宽、过窄或者行高过大、过小的问题。常见的解决方法是调整行高、列宽。在Microsoft Excel中,在 单元格 格式 设置 中可手动 设置 自适应行高或自适应列宽,但通过代码,我们可以通过方法AutoFitColumns()或者AutoFitRows()来 设置 指定数据范围或整个工作表的自适应行高、列宽。这里 设置 自适应分以下2种情况来进行: 1. 固定数据, 设置 行高、列宽自适应数据 2. 固定行高、列宽, 设置 数据自适应行高、列宽(即缩小 单元格 数据字体大小适应 单元格 ) 使用工具:Free Spire.XLS
[code=" java "] Paragraph paragraph=new Paragraph(content,font); Cell cell =new Cell (paragraph); cell . set Colspan(colspan); cell . set HorizontalAlignment(align); //主要是这个 cell . set Lea... <groupId>com. itext pdf </groupId> <artifactId> itext - pdf a</artifactId> <version>5.5.13.2</version> </dependency> 注意,该版本已经比较旧,如果您使用的是最新版本的 iText ,可能需要更新该依赖项的版本号。 此外,`com. itext pdf .io.font` 在 iText 7 中已经被删除,不再提供支持。如果您正在使用 iText 7,您可能需要查找其他解决方案来处理字体。