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

或者在Java中使用iText pdf更改pdf页面的颜色

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

或者在Java中使用iText pdf更改pdf页面的颜色

这是我如何在Java中使用iText如何添加pdf的页面背景色的后续问题

虽然该问题的答案中给出的建议有效,但这并不是您可以获得的最佳建议。如果我早些时候看过您的原始问题,我将以不同的方式回答。我会建议您使用页面事件,如PageBackgrounds示例中那样。

在此示例中,我为页面1和2创建蓝色背景,为所有后续偶数页面创建灰色背景。参见page_backgrounds.pdf

如何实现的?好吧,使用与我对这个相关问题的回答相同的技术:如何使用iText库5.5.2为整个pdf页面绘制边框

我创建这样的页面事件:

public class Background extends PdfPageEventHelper {    @Override    public void onEndPage(PdfWriter writer, document document) {        int pagenumber = writer.getPageNumber();        if (pagenumber % 2 == 1 && pagenumber != 1) return;        PdfContentByte canvas = writer.getDirectContentUnder();        Rectangle rect = document.getPageSize();        canvas.setColorFill(pagenumber < 3 ? baseColor.BLUE : baseColor.LIGHT_GRAY);        canvas.rectangle(rect.getLeft(), rect.getBottom(), rect.getWidth(), rect.getHeight());        canvas.fill();    }}

如您所见,我首先检查页码。如果它是一个奇数并且不等于1,我什么也不会做。

但是,如果我在第1页或第2页上,或者页码是偶数,则从中获取内容

writer
,而从中获取页面尺寸
document
。然后,将填充颜色设置为蓝色或浅灰色(取决于页码),然后为覆盖整个页面的矩形构造路径。最后,我用填充颜色填充该矩形。

现在我们有了自定义

Background
事件,我们可以像这样使用它:

PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));Background event = new Background();writer.setPageEvent(event);

Background
如果您需要其他行为,请随时适应课程。



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

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

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