ITEXT 生成基本的PDF文档

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ITEXT 生成基本的PDF文档相关的知识,希望对你有一定的参考价值。

参考技术A 如何使用ITEXT来生成PDF文件呢?来看一个最简单的例子

接下来,通过document类的一些方法,来了解Document的使用

默认构造器,默认时用的是A4的纸张大小,这种纸张大小也是我们最常使用的纸张类型,PageSize中封装了多种纸张类型,基本涵盖我们日常使用的需求,如有特殊要求不在PageSize中,可以自定义一个 Rectangle rectangle = new Rectangle(100f,200f) 实例,指定长、宽长度即可。
构造器二传入一个RectAngle(矩形),用于设置文档纸张,可用PageSize中的静态Rectangle实例,也可自定义Rectangle实例,默认文档边距左右上下均为36
构造器三传入一个Rectangle和文档页面边距长度设置,顺序是左、右、上、下

在生成的iText PDF文档中居中对齐图像

我正在使用库“com.itextpdf:itextg”来生成PDF文件。我的要求是以A4格式将图像添加到PDF文件,每页一张图像。

ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
Image image = Image.getInstance(stream.toByteArray());
image.scaleToFit(PageSize.A4);
document.add(image);

默认情况下,图像将添加为顶部对齐,并且PDF文档页面底部的某些空间处于空白状态。

我想中心对齐图像,以便从所有边留下相等的空间,图像放在中心。

我知道我们有一个方法setAbsolutePosition,但它需要absoluteX和absoluteY。我需要一些像CENTRE_HORIZONTAL和CENTRE_VERTICAL这样的亲戚。有人可以帮助生成中心对齐(垂直和水平)图像的PDF吗?

答案

如果您确实需要A4页面,则需要计算缩放图像的X,Y位置,使其在水平和垂直方向上居中。

image.scaleToFit(PageSize.A4.getWidth(), PageSize.A4.getHeight());
float x = (PageSize.A4.getWidth() - image.getScaledWidth()) / 2;
float y = (PageSize.A4.getHeight() - image.getScaledHeight()) / 2;
image.setAbsolutePosition(x, y);
document.add(image);

这将使图像居中在A4页面上。

但是,如果我是你,我不会尝试将图像居中放在A4页面上。相反,我会将页面大小调整为图像的大小。

另一答案

图像的水平中心对齐可以通过以下代码实现

        Image signature = Image.getInstance(stream.toByteArray());
        signature.scaleAbsolute(70f, 70f);
        signature.setAlignment(Element.ALIGN_CENTER);
另一答案

使用setAlignment()for居中图像。

Image image = Image.getInstance(stream.toByteArray());
image .setAlignment(Image.MIDDLE);

有关更多信息Read this

以上是关于ITEXT 生成基本的PDF文档的主要内容,如果未能解决你的问题,请参考以下文章

java中怎么利用poi和itext生成pdf文档

iText 7:此 pdf 文档可能无法正确显示 Firefox

itext pdf文档生成

在生成的iText PDF文档中居中对齐图像

Java IText 生成PdF文档怎样设置黑体字体

利用itext生成pdf的简单例子