首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在iText 7中添加页眉和页脚

在iText 7中添加页眉和页脚,可以通过自定义实现一个PdfPageEvent的子类来实现。以下是一个示例代码:

代码语言:txt
复制
import com.itextpdf.kernel.events.Event;
import com.itextpdf.kernel.events.IEventHandler;
import com.itextpdf.kernel.events.PdfDocumentEvent;
import com.itextpdf.kernel.events.PdfPageEvent;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.layout.Canvas;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.property.TextAlignment;
import com.itextpdf.layout.property.VerticalAlignment;

public class HeaderFooterHandler implements IEventHandler {
    protected String header;
    protected String footer;

    public HeaderFooterHandler(String header, String footer) {
        this.header = header;
        this.footer = footer;
    }

    @Override
    public void handleEvent(Event event) {
        PdfDocumentEvent docEvent = (PdfDocumentEvent) event;
        PdfDocument pdfDoc = docEvent.getDocument();
        PdfPage page = docEvent.getPage();
        int pageNumber = pdfDoc.getPageNumber(page);

        Rectangle pageSize = page.getPageSize();
        PdfCanvas pdfCanvas = new PdfCanvas(page.newContentStreamBefore(), page.getResources(), pdfDoc);

        // 添加页眉
        Canvas canvas = new Canvas(pdfCanvas, pdfDoc, pageSize);
        canvas.showTextAligned(new Paragraph(header), pageSize.getLeft() + 40, pageSize.getTop() - 30, TextAlignment.LEFT, VerticalAlignment.MIDDLE);

        // 添加页脚
        canvas.showTextAligned(new Paragraph(footer + " - " + pageNumber), pageSize.getRight() - 40, pageSize.getBottom() + 30, TextAlignment.RIGHT, VerticalAlignment.MIDDLE);

        pdfCanvas.release();
    }
}

然后,在创建PDF文档时,将自定义的HeaderFooterHandler实例添加到PdfDocument中:

代码语言:txt
复制
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;

public class AddHeaderFooterExample {
    public static void main(String[] args) {
        String header = "这是页眉";
        String footer = "这是页脚";

        PdfDocument pdfDoc = new PdfDocument(new PdfWriter("output.pdf"));
        Document doc = new Document(pdfDoc);

        // 添加页眉和页脚处理器
        pdfDoc.addEventHandler(PdfDocumentEvent.START_PAGE, new HeaderFooterHandler(header, footer));

        // 添加内容到PDF文档
        doc.add(new Paragraph("这是第一页的内容"));
        doc.add(new AreaBreak());
        doc.add(new Paragraph("这是第二页的内容"));

        doc.close();
    }
}

这样,生成的PDF文档中每一页都会有相应的页眉和页脚。你可以根据需要自定义页眉和页脚的内容和样式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • CSharp每日代码示例:使用iTextSharp创建PDF文件

    iTextSharp是一个从JAVA项目iText衍生的.Net版本的开源项目,采用GPL许可证发布。这个项目在创建PDF文件方面功能相当强大,弱点是缺少对于现有PDF文件进行修改和分析的功能。...,块可以用于构建其他基础元素如短句、段落、锚点等,块是一个有确定字体的字符串,要添加块到文档中时,其他所有布局变量均要被定义。...有一些预定的分割符如“ ”空格和“-”连字符,但是你可以使用setSplitCharacter方法来覆盖这些默认值。...你能够看到iText添加文本注释在页面上当前位置下面,第一个在段后第一行下面,第二个在短句结束处的下面。...九、页眉页脚 在旧版本中,有HeaderFooter对象就可以设置页眉页脚,但是新版本中,已经不存在这个对象。

    3.1K10

    word文档页码不连续编号怎么办_怎样给论文加页码

    我们先在页脚中设置好添加页码的位置,这里使用制表位,关于制表位的使用技巧可以参考word达人带你玩转制表位!...处理方法: 第1步:执行【插入】-【页脚】-【空白页脚】,单击【下一节】,来到第2页(横向页面),先关闭【链接到前一条页眉】选项: 第2步:分别在页脚当前位置添加页码,为纵向页面添加步骤这里不再细说,重点说一下横向页面的设置...先在页脚中绘制一个文本框,调整大小,将环绕方式设置为四周型环绕,并将其文本向调整为“文字旋转90度”,拖放到目标位置: 第3步:在文本框中添加页码,并设置起始页为续前节,根据需要将文本框的边框线和填充色设置为...结果如下图: 提示:在对各节页脚设置前,要先将各节前的【链接到前一条页眉】选项取消选择。...其关键缘故 如何在当前工作表中怎样设置单元格?

    2.4K20

    最全总结 | 聊聊 Python 办公自动化之 Word(下)

    来控制 当值为 True 时,代表页眉页脚不同于首页,每个页面章节的页眉、页脚都可以单独设置 当值为 False 时,所有页面的页眉、页脚都一样 # 1、获取待处理页眉、页脚的章节 header =...添加页眉页脚包含两种,分别是:普通页眉页脚、自定义样式的页眉页脚 1 - 普通页眉页脚 def add_norm_header_and_footer(header, footer, header_content...# 2.1 普通的页眉、页脚 add_norm_header_and_footer(header, footer, "我是一个页眉", "我是一个页脚") 2 - 自带样式的页眉页脚 def add_custom_style_header_and_footer...def remove_all_header_and_footer(doc): """ 删除文档中所有页眉和页脚 :param doc: :return: """...因此,这里我们可以使用 第一篇文章 的方法创建一个「文字块样式」,然后以文字块 Run 的形式,添加到页脚的第一个段落中去 # 注意:要设置页眉页脚的对齐方式,必须设置到段落上(文字块不能添加对齐方式)

    2.6K10

    word 如何设置不同页眉页脚?

    有时我们在WORD中需要设置不同的页眉,该如何优雅地设置呢?别着急,头发会掉的... 敲黑板: 要知道Word中对页眉和页脚的操作是可以针对节这个单位的。...此时整篇文档被分为三节 (第一节:首页和目录部分;第二节:正文部分;第三节:附录部分) 注意:如果在正文部分开始处和附录开始处; 使用过“分页符” 来进行强制分页的话, 则应该删除此分页符页眉页脚设置。...一、 首页和目录    首页和目录既然不想要页眉和页脚, 那么我们就不需要什么操作。 二、正文部分页眉设置 将鼠标定位于正文部分第一页,双击页眉区域。 此时该节的页眉处于可编辑状态。...02 三、页脚设置 与页眉设置类似:先将鼠标定位于正文部分某页,双击页脚区域。...如处于页眉编辑状态, 可单击“导航”中〔转至页脚〕按钮切换到页脚编辑, 先点击“导航”中〔链接到前一条页眉〕按钮, 使其与前一节“断开联系”, 然后编辑本页的页角文字即可。 ? Bye

    5.4K30

    《iOS Human Interface Guidelines》——Table View表视图

    在章节的第一个条目之前可以显示页眉,在最后一个条目之后可以显示页脚。 分组风格。在分组风格中,行是显示在分组中的,其可以有页眉和页脚。...NOTE 所有四个标准表单元格风格都允许额外的表视图元素,比如勾选符号和扩展指示器。添加这些元素会减少标题和子标题可使用的单元格宽度。 清晰而有效地使用表视图来显示大量或少量的信息。...两种表视图风格都允许你通过信息章节间的页眉和页脚视图来提供上下文。...你也可以使用页眉页脚视图——一种 UITableViewHeaderFooterView 实例——来在页眉或者页脚显示文本或者自定义的视图。...查看UITableViewHeaderFooterView Class Reference来学习如何在你的代码中使用页眉页脚视图。

    2.4K20

    wkhtmltopdf参数详解及精讲使用方法

    封面对象简介 “封面对象”用来把一个网页作为封面输出到PDF文档中,输出的页面不会在TOC中出现,并且不会包含页眉和页脚。...更多详细内容请查看后面介绍的 目录对象参数 命令参数 ​ 命令参数包含五部分,分别是“全局参数”,“大纲参数选项”,“页面对象参数”,“页眉和页脚参数选项”和“目录对象参数”。...页眉和页脚参数选项 --footer-center 在页脚的居中部分显示页脚文本 --footer-font-name 设置页脚的字体...如果你不熟悉 BNF 的话,下面的代码段中是三个例子: http://user:password@myproxyserver:8080socks5://myproxyserverNone 页眉和页脚 页眉和页脚可以使用参数...页眉和页脚也可以通过 HTML文档来提供。

    1.1K10

    Wondershare PDFelement Pro Mac(好用的PDF编辑器)v9.1.4中文版

    并且Wondershare PDFelement Pro Mac还为你提供了编辑PDF文档的最简单方法,包括文本,图像,页面,链接,背景,水印,页眉和页脚。...3、文档注释与批注      在PDF内任何你想要的地方添加便笺注释和文本框。用高亮、划掉、下划线来标记文档以便审阅。...4、文档拆分和提取      将多页PDF文档分割成几个较小的文件,或从文档中提取指定页面生成单独的PDF文档。 5、添加贝茨码      添加可定制的贝茨编号到文档,便于索引和检索。...7、添加水印,背景,页眉页脚      轻松添加及移除文本及图片水印、背景、页眉页脚,让您充分自定义创建PDF文件。...8、密码、密文保护      使用保密性强的256位AES加密密码保护PDF文件,可设置锁定特定功能,如视图、打印、编辑、填充和旋转

    1.4K40

    Java后端:html转pdf实战笔记

    它会带页眉和页脚的TOC之前插入 –custom-header 设置一个附加的HTTP头(可重复) –debug-javascript 显示的javascript调试输出 –default-header...–user-style-sheet 指定用户的样式表,加载在每一页中 –username HTTP认证的用户名 –version 输出版本信息退出 –zoom 使用这个缩放因子 (default 1)页眉和页脚选项...) –header-html* (添加一个HTML页眉,后面是网址) –header-left* (左对齐的页眉文本) –header-line* (显示一条线在页眉下) –header-right*...(右对齐页眉文本) –header-spacing* (设置页眉和内容的距离,默认0) –footer-center* (设置在中心位置的页脚内容) –footer-font-name* (设置页脚的字体名称...) –footer-font-size* (设置页脚的字体大小default 11) –footer-html* (添加一个HTML页脚,后面是网址) –footer-left* (左对齐的页脚文本)

    4.6K61

    分层 Blazor 组件

    在 Blazor 中,事情变得容易多了,因为无需为了创建复杂元素(如 Bootstrap 模式对话框)的更易记标记语法,而无奈地使用标记帮助器。接下来将介绍如何在 Blazor 中创建模式组件。...相反,Content 子组件包装整个对话框的内容,并拆分为三段:页眉、正文和页脚。 总之,根据上面的代码片段,生成的 UI 由标记为“打开”的主按钮组成。...在获得单击后,此按钮便会立即弹出填充有以下三层的 DIV:页眉、正文和页脚。 必须处理模板化组件和级联参数,才能创建模式对话框所需的嵌套组件。...模式对话框可视需要在页眉处添加“关闭”按钮,并添加与对话框大小或动画相关的其他属性。所有此类信息都可以在自定义数据传输对象中组合,并通过树进行级联。...最后,三个 RenderFragment 模板属性定义可自定义区域(页眉、页脚和正文)的实际内容。

    8.4K10

    python自动化办公:玩转word之页眉页脚秘笈

    节将就python操作word的页眉页脚技巧做深入介绍。 使用页眉和页脚 python操作word的页眉页脚技巧做深入介绍 Word支持页眉和页脚。...页眉是出现在每个页面的上边距区域中的文本,与文本主体分开,并且通常传达上下文信息,例如文档标题,作者,创建日期或页码。文档中的页眉在页面之间是相同的,内容上只有很小的差异,例如更改部分标题或页码。...页眉也称为运行头。 一个页面页脚中的每个日日夜夜,只不过它出现在页面底部的页头类似。它不应与脚注混淆,脚注在页面之间不一致。...为了简洁起见,这里经常使用术语标题来指代可以是页眉或页脚对象的内容,信任读者以理解它对两种对象类型的适用性。 访问节的标题 页眉和页脚与一个部分相关联; 这允许每个部分具有不同的页眉和/或页脚。...中心和右对齐"区域"所需的制表位是HeaderWord中潜在样式的一部分 ,但该样式不存在于默认python-docx 模板中,需要添加: >>> from docx.enum.style import

    4.1K30

    excel常用操作大全

    如果您在原始证书编号后添加19,请在B1单元格中写入:=A1 '13 ',然后按回车键。 2.如何在文件下拉窗口底部设置最近运行的文件名数量?...3.在EXCEL中输入“1-1”和“1-2”等格式后,将成为日期格式,如1月1日和1月2日。我该怎么办? 这是由EXCEL自动识别日期格式造成的。...这样,Excel会自动将您指定的部分添加为每页的页眉。 5.如果一个Excel文件中有多个工作表,如何将多个工作表同时设置为相同的页眉和页脚?如何一次打印多个工作表?...在EXCEL菜单的视图-页眉和页脚中,您可以设置页眉和页脚来标记信息。将鼠标移动到工作表的名称上(如果您没有任何特殊设置,由Excel自动设置的名称是“工作表1,工作表2,工作表3 .”)...此时,您的所有操作都针对所有工作表,无论是设置页眉和页脚还是打印工作表。6.在Excel2000制作的工资表中,只有第一个人有工资表的表头(如编号、姓名、岗位工资.),并希望以工资单的形式输出它。

    19.3K10

    itextpdf设置页码_word页码相同怎么改

    项目需要样式比较复杂,刚开始因为时间比较紧所以采用了Itextpdf插件代码生成pdf ,实话说过程十分繁琐,因为pdf文件样式比较多,表格也比较多,各种的表格,还有就是页眉页脚页码都要自己找页面位置坐标但是又不能像...PdfWriter.getInstance(document, out); } catch ( IOException | DocumentException e) { e.printStackTrace(); } // 定义页眉和页脚页码事件...= null) { cells.setBackgroundColor(color); } return cells; } } 接下来是页眉页脚事件的代码PDFBUilder 因为页眉页脚都是带格式的,...所以需要一点一点拼接起来,页眉中需要添加logo图片,位置是通过代码中的x,y坐标指定的 package com.example.demo.utils; import com.example.demo.config.PDFConfig...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    3.8K30
    领券