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

iText7:如何在最后一页的底部添加文本?

在iText7中,可以通过以下步骤在最后一页的底部添加文本:

  1. 创建一个PdfDocument对象,打开现有的PDF文档:
代码语言:txt
复制
PdfDocument pdfDoc = new PdfDocument(new PdfReader("input.pdf"), new PdfWriter("output.pdf"));
  1. 获取文档的总页数:
代码语言:txt
复制
int totalPages = pdfDoc.getNumberOfPages();
  1. 获取最后一页的PdfPage对象:
代码语言:txt
复制
PdfPage lastPage = pdfDoc.getPage(totalPages);
  1. 创建一个PdfCanvas对象,用于在PdfPage上绘制文本:
代码语言:txt
复制
PdfCanvas canvas = new PdfCanvas(lastPage, true);
  1. 设置文本的字体、大小和颜色:
代码语言:txt
复制
canvas.setFontAndSize(PdfFontFactory.createFont(), 12);
canvas.setFillColor(Color.BLACK);
  1. 在指定位置绘制文本:
代码语言:txt
复制
canvas.beginText();
canvas.showTextAligned(new Paragraph("底部文本"), lastPage.getPageSize().getWidth() / 2, 20, TextAlignment.CENTER);
canvas.endText();
  1. 关闭PdfDocument对象,保存修改后的PDF文档:
代码语言:txt
复制
pdfDoc.close();

这样,就可以在最后一页的底部添加文本。请注意,上述代码中的字体、大小和位置可以根据实际需求进行调整。

推荐的腾讯云相关产品:腾讯云对象存储(COS),用于存储和管理PDF文档。产品介绍链接地址:https://cloud.tencent.com/product/cos

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

相关·内容

何在keras中添加自己优化器(adam等)

\Anaconda3\envs\tensorflow-gpu\Lib\site-packages\tensorflow\python\keras 3、找到keras目录下optimizers.py文件并添加自己优化器...找到optimizers.py中adam等优化器类并在后面添加自己优化器类 以本文来说,我在第718行添加如下代码 @tf_export('keras.optimizers.adamsss') class...super(Adamsss, self).get_config() return dict(list(base_config.items()) + list(config.items())) 然后修改之后优化器调用类添加我自己优化器...# 传入优化器名称: 默认参数将被采用 model.compile(loss=’mean_squared_error’, optimizer=’sgd’) 以上这篇如何在keras中添加自己优化器...(adam等)就是小编分享给大家全部内容了,希望能给大家一个参考。

45K30

itext7史上最全实战总结

Html段落转Pdf段落 我们可能遇到把一段Html文本转换成itext7段落放进来,此时需要用到它htmlToPdf模块,该模块对应POM <!...监听事件 在编写pdf时候,比如一篇整体文章,我们需要在页眉位置添加关于这篇文章固定文本或者图形,类似于打个标签,表示你翻了这么多页一直在看这篇文章,当第二篇文章时候就换一个,举个例子 第一页...思路分析发现,我们需要知道什么时候文章内容一页写不起了,换了一页时候我们需要添加一个同样页眉。...添加目录 我没有找到itext7原生是否有目录添加,根据我自己需求,我用Table组件来实现了自定义目录,由于我PDF是用来打印,所以我并没有给目录添加Link,也就是页面跳转,不过当你彻底理解了我项目...先说下遇到困难,目录顾明思意,必须要有内容才会有目录,所以实际上目录是最后添加,但如果我们添加内容到最后再跳转到前面的页面来添加目录,有三个问题: 目录有几页如何知道?

6.9K31
  • AI文档智能助理都是如何处理pdf

    但是pdf2txt.py从PDF文件中提取所有文本内容。但不能识别画成图片文本,这需要对图片特征进行识别。对于加密PDF你需要提供一个密码才能解析,对于没有提取权限PDF文档你得不到任何文本。...查看器小巧、快速,支持众多文档格式, PDF、XPS、OpenXPS、CBZ、EPUB 和 FictionBook 2。...命令行工具允许您注释、编辑和将文档转换为其他格式, HTML、SVG、PDF 和 CBZ。您还可以编写使用 JavaScript 操作文档脚本。...该库采用可移植 C 模块化编写,因此集成商可以根据需要添加和删除功能。此外,还有一个使用 JNI Java 库,可在 Oracle Java 和 Android 上运行。...iText7仓库地址[5] iText 7 与iText 5是两个不同体系。

    88420

    教你两招,轻松搞定html页面导出为pdf文件

    所以我这边最后只能退而求其次,使用了其他技术来实现。 接着我们来看一下html2canvas+jsPDF方式 ? ? 这种方式是采用以上两个开源项目来实现。网上把它称作是一种曲线救国方式。...所以最终我们拿到PDF文件并不是真正意义上PDF文件,而是一张图片。这也导致我们无法编辑PDF文件。而且质量也一般。 最后我们来看一看iText ?...itext7好像是最新版本,这种方式适合于维护PDF模板然后动态添加内容,有需要小伙伴可以了解一下。...而且itext7更多用于需要去维护PDF模板场景,并不适合我本次需求。所以我最终使用html2canvas+jsPDF方式来实现。...= canvas.width var contentHeight = canvas.height //一页

    3.2K30

    C# iText 7 切分PDF,处理PDF页面大小

    一、itext 我要使用itext做一个pdf页面大小一致性处理,然后再根据数据切分出需要pdf. iText官网有关于它介绍,https://itextpdf.com/ 然后在官网可以查找api...二、处理PDF页面大小一致 由于原始PDF 是扫描图片合成来,有些页面扫描图片规格不一致,导致pdf阅读性很差。...对于这个pdf我进行处理,首先是在nuget 里面搜索 itext 进行安装,使用itext7。...页码,将原来PDF页码对象拷贝PdfFormXObject到要生成PDF文档中,首先要copy页面对象才能使用,不然直接获取page对象是原来文档,我们无法操作。...计算完成后,在新文档中使用PdfCanvas 对象新添加一页,然后将PdfFormXObject 写入到新添加页中。

    1.2K40

    为何选择iText?java PDF开源库选择与iText发展历史

    iTextjava类对于那些要产生包含文本,表格,图形只读文档是很有用。它类库尤其与java Servlet有很好给合。使用iText与PDF能够使你正确控制Servlet输出。...iText GitHub 能方便地加入你数据处理中,详情参阅参考资料7 2.2.3 文档例子比拼 最后看一下两者提供文档: iText: 官网提供资料很多 出版了几本电子书,最新iText7...iText 1.x-2.x/iTextSharp 3.x-4.x(2006-2009) 这些版本库很受欢迎,但是这些库不在更新也不能在商业环境中使用 这些版本最后版本是在2009年(iText...: 图3. iText各个版本比较图 具体版本更新,可以访问官网 3.3 iText7及各个插件版本 iText7有很多插件,能帮助我们完成各种功能,具体版本号如下: 图...发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    6.6K30

    织梦DEDECMS添加新变量和删除新变量方法详解

    (注意要用cfg开头,并且变量名只能是a-z ,不能是数字)变量值:                (这是变量默认值,可以不填,默认空)变量类型:文本      (这里根据具体情况选择,如果你要添加很多文字...,可以选择多行文本)参数说明:站长QQ (用来说明变量用途)所属组:站点设置   (可以选择其他组,不过为了方便,默认选择站点设置)     填写好后,点击保存变量,之后在织梦后台——系统——系统基本参数...——站点设置页面的底部多了“站长QQ”变量,我们可以填上QQ号,如下图: (2)在模板中调用新变量    刚刚添加新变量cfg_qq 织梦调用标签是{dede:global.cfg_qq/} ,之后在模板..._是默认表前缀,请根据您表前缀查找),单击“浏览”,就会看到所有变量,之后点击底部页号,选择最后一页,因为一般情况下,您创建新变量,都会在最后一页。...总结:这就是常用新变量添加和删除方法,请根据你需要选择。

    2.8K20

    织梦添加新变量和删除新变量方法

    (2)打开“添加新变量”输入框后,以添加站长 QQ 新变量为例,添加变量值如下图: ?...变量名称:cfg_qq   (注意要用cfg开头,并且变量名只能是a-z ,不能是数字) 变量值:                (这是变量默认值,可以不填,默认空) 变量类型:文本      (这里根据具体情况选择...,如果你要添加很多文字,可以选择多行文本) 参数说明:站长QQ (用来说明变量用途) 所属组:站点设置   (可以选择其他组,不过为了方便,默认选择站点设置)     填写好后,点击保存变量,之后在织梦后台...——系统——系统基本参数——站点设置页面的底部多了“站长 QQ”变量,我们可以填上 QQ 号,如下图: ?...(dede_是默认表前缀,请根据您表前缀查找),单击“浏览”,就会看到所有变量,之后点击底部页号,选择最后一页,因为一般情况下,您创建新变量,都会在最后一页

    2.3K30

    info(1) command

    要理解 info 命令,不仅要学习如何在单个结点中浏览,还要学习如何在结点和子节点之间切换。 就便捷而言,建议使用 man 而不是 info。...3.选项说明 -k, --apropos=STRING 在所有手册所有索引中查找 STRING -d, --directory=DIR 添加包含 info 格式帮助文档目录 --dribble=...-o, --output=FILENAME 输出被选择节点内容到指定文件 -R, --raw-escapes 输出原始 ANSI 转义字符(默认) --no-raw-escapes 转义字符输出为文本...Space, PageDown 翻滚到下一页,当前页最后两行保留为下一页起始两行。 Del, PageUp 翻滚到上一页,当前页起始两行保留为上一页最后两行。...5.常用示例 (1)查看命令 info 格式帮助文档。 查看 info 命令 info 格式帮助文档。

    17720

    LaTeX浮动体

    「浮动体」是一个活动盒子,它可以把内容放在距离浮动体代码前后不远地方,通常就是浮动体代码所在地,也可以放在页面开头、末尾或者单独一页中。 「浮动体」另一个作用是给图表添加一个标题。...t:页顶(top),浮动体被放在一页顶部,这可以是代码环境所在页面或之后页面。 b:页底(bottom),浮动体被放在一页底部,这可以是代码环境所在页面或之后页面。...p:独立一页(page),一个或多个浮动体被放在单独页面中,这个页面被称为「浮动页」。与之对应,有正文页面被称为「文本页」。...限制浮动环境数量和占用大小参数 参数 类型 默认值 描述 topnumber 计数器 222 文本页顶部浮动体最大数量 bottomnumber 计数器 111 文本底部浮动体最大数量 totalnumber...\bottomfraction 宏 0.30.30.3 文本底部浮动体最大占用空间比 \textfraction 宏 0.20.20.2 文本页中文本所占最小空间比例 \floatpagefraction

    2.4K20

    技术|必知必会 Vim 编辑器基础命令

    它可以通过高度自定义配置来提高文本编辑效率。它是在众多Unix默认安装Vi编辑器升级版。 Vim通常被称为“程序员编辑器”,但并不限于此,它也可用于编辑任何类型文件。...如果你正在使用插入模式,你会在编辑器底部看到INSERT。如果编辑器底部没有显示任何内容,或者在编辑器底部显示了文件名,则处于“命令模式”。...命令模式下光标移动Vim快捷键允许你使用不同方式来移动光标: G–跳转到文件最后一行gg–跳转到文件首行$–跳转到行末尾0(数字0)–跳转到行开头w–跳转到下一个单词开始(单词分隔符可以是空格或其他符号...)W–跳转到下一个单词开始(单词分隔符只能是空格)b–跳转到下一个单词末尾(单词分隔符可以是空格或其他符号)B–跳转到下一个单词末尾(单词分隔符只能是空格) PgDn键–向下移动一页 PgUp...:%s/旧模式/新模式/gc–逐个询问是否文件中旧模式替换为新模式如何在Vim编辑器中跳转到特定行你可以根据需求以两种方式达到该目的,如果你不知道行号,建议采用第一种方法。

    1.3K40

    Linux 系统 vim 编辑器使用简明教程

    ,执行下面命令后将进入插入模式,按ESC键可退出插入模式) a      //在当前光标位置右边添加文本 i       //在当前光标位置左边添加文本 A     //在当前行末尾位置添加文本...I      //在当前行开始处添加文本(非空字符行首) O     //在当前行上面新建一行 o     //在当前行下面新建一行 R    //替换(覆盖)当前光标位置及后面的若干文本...按 Ctrl+b :屏幕往后移动一页。 按 Ctrl+f :屏幕往前移动一页。 按 Ctrl+u :屏幕往后移动半页。 按 Ctrl+d :屏幕往前移动半页。 按数字 0 :移到当前行开头。...按 G :移动到文章最后。 按 $ :移动到光标所在行行尾。 按 ^ :移动到光标所在行行首。 按 w :光标跳到下个字开头。 按 e :光标跳到下个字字尾。...十一、修改文件格式 :set fileformat=unix   //将文件修改为unix格式,win下面的文本文件在linux下会出现^M。

    1.6K70

    如何将HTML表格转换成精美的PDF

    这是没有帮助,因为当你忘记任何给定列包含什么数据时,你需要返回到第一页。第一页表格底部也有点被切断,因为浏览器试图在创建下一页之前尽可能多地挤进内容。...你可以创建一个新 jsPDF 类实例,给它一个你想导出 HTML 内容引用,然后提供任何其他附加设置,页边距大小或文档标题。...但是,请注意在第一页和第二页之间发生了什么。表格一直延伸到第一页底部,然后在第二页顶部直接接上。没有应用额外边距,而且表文本内容有可能被切成两半。...pdfmake 还允许我加入页眉和页脚,所以很容易添加页码。但你会注意到,第一页和第二页之间表格内容仍然没有完全分开。分页符将 2002 年一行部分地分割在两页之间。...我们可以保留我们漂亮表格样式。表格列头和表脚在每一页上都是重复,表格行数不会被切掉,而且页面四面都有适当大小边距,每个页面的页眉也是重复,每个页面底部页码也是重复

    6.8K20

    Linux文本处理

    image.png cat -A 文件名 ---------- 查看文本所有隐藏符号,包括回车符($)、Tab 键(^I)等 image.png more命令 more 命令可以分页显示文本文件内容...不仅如此,为了方面用户浏览文本内容,less 命令还提供了以下几个功能: 使用光标键可以在文本文件中前后(左后)滚屏; 用行号或百分比作为书签浏览文件; 提供更加友好检索、高亮显示等操作; 兼容常用字处理程序...( Vim、Emacs)键盘操作; 阅读到文件结束时,less 命令不会退出; 屏幕底部信息提示更容易控制使用,而且提供了更多信息。...【PgDn】键 向下移动一页。 【PgUp】键 向上移动一页。 Ctrl+f 向下移动一页。 Ctrl+b 向上移动一页。 Ctrl+d 向下移动一页。 Ctrl+u 向上移动半页。...查看 文本最后 3 行数据内容。 image.png

    2K20

    Flutter 中自定义动画底部导航栏

    在这个博客中,我们将探索Flutter中自定义动画底部导航栏。我们将看到如何实现自定义动画底部导航栏演示程序以及如何在 Flutter 应用程序中使用它。...介绍: 显示在应用程序底部Material小部件,用于在几个视角中进行选择,通常在 3 到 5 范围内某个位置。底部导航栏包含各种选项,文本标签、图标或两者。...它提供了应用程序高级视角之间快速导航。对于更大屏幕,侧面导航可能更合适。 这个演示视频展示了如何在 flutter 中使用自定义底部导航栏。...它展示了自定义底部导航栏将如何在 Flutter 应用程序中工作。它显示当用户点击底部导航栏图标时,它们将被动画化并显示标签文本。当用户点击任何图标时,颜色也会发生变化和动画。...在这个小部件中,我们将添加 List页面。我们将添加四个具有不同文本容器并返回**IndexedStack()**小部件。

    8.9K30

    外贸建站谷歌SEO和提高转化3个内链策略

    跳到底部提示。 内链结构 3 个优点 内链非常重要,至少有三个原因。它们强化了漏斗三个部分。...从第一页链接到第二页。 从高权重页面,只需在页面的正文文本某处创建一个链接,即可创建几乎高排名页面。几个提示: 如果有意义,请使用关键词链接锚文。...将此内容带到您下一次内容营销会议,并观看社交媒体团队立即行动起来。 3. 从流量冠军到转换冠军链接 最后添加内部链接。在高流量页面的正文文本某处,链接到高转换页面。...查看任何营销页面的底部最后一行文字是什么?是否呼吁访客采取行动?它提供帮助吗?它开始对话吗?还是页面突然结束? 下面是一些内链示例,您可以放在营销页面的底部,作为行动号召。...请注意链接中文本如何包含其链接到页面的目标关键词。 7. 找不到在锚文中使用关键字方法?添加”相关链接” 没必要太花哨。

    2K00

    首页、上一页、下一页、尾页和跳转

    或是复制下面代码,到GridView 后面,这个代码里有第一页最后一页禁用出来, 当前第:...在viewDate()方法最后添加下面两句。...首页和最后一页是第一页,和最大数据页数,最后我们再做一个跳转页面的,需要一个dropdownList,和一个linkButton,页数集合,这里我们有两种处理 一是在viewData里添加,二是在GridView...DataBound方法里添加,两个作用差不多,viewData是我们自己绑定数据,只要加载最后,是可以完成,这里我们使用第二种DataBound方法,它是在GridView数据全部绑定完成后自动执行一个方法...完整代码见上面Page_OnClick方法。其第一页最后一页禁用控制我是写在页面上,可以看上面有。

    1.7K10

    【愚公系列】2023年11月 Winform控件专题 Label控件详解

    文本超出控件显示区域时,控件将自动添加省略号。可以通过修改控件大小、字体大小和文本内容等来调整省略号位置和显示效果。...展示如何在Label控件中使用AutoEllipsis属性:label1.Text = "这是一段很长很长文本,它将会超出Label控件显示区域,使用AutoEllipsis可以自动添加省略号。"...最后,将该容器添加到Form窗体中。运行程序后,可以看到四个Label控件分别停靠在Panel容器顶部、底部、左侧和右侧。...以下是一个具体案例,用于说明如何在Winform中使用Label控件:在Visual Studio中创建一个新Winform项目。在Form中添加一个Label控件。...最后,将该控件添加到当前窗体中。感谢:给读者一封信我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

    82111

    Linux 命令(97)—— info 命令

    要理解 info 命令,不仅要学习如何在单个节点中浏览,还要学习如何在节点和子节点之间切换。 就便捷而言,建议使用 man 而不是 info。 2.命令格式 info [OPTION]......3.选项说明 -k, --apropos=STRING 在所有手册所有索引中查找 STRING -d, --directory=DIR 添加包含 info 格式帮助文档目录 --dribble=...-R, --raw-escapes 输出原始 ANSI 转义字符(默认) --no-raw-escapes 转义字符输出为文本 --restore=FILENAME 从文件 FILENAME 中读取初始击键...显示帮助窗口 x 关闭帮助窗口 q 关闭整个 Info Up 向上键,向上移动一行 Down 向下键,向下移动一行 Space, PageDown 翻滚到下一页,当前页最后两行保留为下一页起始两行...Del, PageUp 翻滚到上一页,当前页起始两行保留为上一页最后两行 b, t, Home 跳转到文档开始 e, End 跳转到文档末尾 [ 转到文档中上一个节点 ] 转到文档中下一个节点

    1.9K10

    Linux 命令(88)—— more 命令

    1.命令简介 more 命令是常用文本文件阅读工具,类似于 cat,不过以一页一页形式显示,更方便使用者逐页阅读。一般文件过大时使用 more 浏览,文件较小时使用 cat。...more 命令一次显示一屏文本,满屏后停下来,并且在屏幕底部出现一个提示信息,给出至今己显示该文件百分比:–More–(XX%),可以使用交互式命令进行交互。...,而是先清除屏幕后再显示内容 -c 与 -p 相似,不同是先显示内容再清除其他旧内容 -s 将多个空行压缩成一行显示 -u 不显示文本底部下划线 +/STRING 从匹配搜索字符串 STRING...显示下一页文本时跳过 k 行文本,缺省值是 1,可在键入命令前输入指定数值替代缺省值 f 显示下一页文本时跳过 k 屏文本,缺省值是 1,可在键入命令前输入指定数值替代缺省值 b, ^B 向后回显第...k 屏文本,缺省值是 1,可在键入命令前输入指定数值替代缺省值 ' 单引号,跳到上一次搜索开始地方 = 显示当前行号 /PATTERN 从当前屏幕最后一行下一行开始搜索符合正则表达式第 k

    5.1K10
    领券