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

iText 7.0.5:如何将PDF和现有书签合并在每个文档的新书签下缩进?

iText 7.0.5是一款功能强大的Java库,用于处理PDF文件。它提供了丰富的功能,包括创建、编辑、合并、拆分和转换PDF文件等。

要将PDF和现有书签合并在每个文档的新书签下缩进,可以按照以下步骤进行操作:

  1. 首先,使用iText库加载现有的PDF文件,并获取其书签树。PdfDocument pdfDoc = new PdfDocument(new PdfReader("existing.pdf")); PdfOutline rootOutline = pdfDoc.getOutlines(false);
  2. 创建一个新的PDF文档,并获取其书签树。PdfDocument newPdfDoc = new PdfDocument(new PdfWriter("merged.pdf")); PdfOutline newRootOutline = newPdfDoc.getOutlines(false);
  3. 遍历现有PDF的书签树,并将每个书签添加到新的PDF文档的书签树中。在添加书签时,可以使用缩进来表示层级关系。for (PdfOutline outline : rootOutline.getAllChildren()) { PdfOutline newOutline = newRootOutline.addOutline(outline.getTitle()); newOutline.addDestination(outline.getDestination()); newOutline.setOpen(false); // 设置书签默认关闭 // 设置缩进 int level = outline.getLevel(); newOutline.setIndentationLeft(level * 10); }
  4. 将现有PDF的页面内容复制到新的PDF文档中。for (int i = 1; i <= pdfDoc.getNumberOfPages(); i++) { PdfPage page = pdfDoc.getPage(i); newPdfDoc.addPage(page.copyTo(newPdfDoc)); } 5. 关闭文档并保存新的PDF文件。 ```java pdfDoc.close(); newPdfDoc.close();

通过以上步骤,你可以使用iText 7.0.5将PDF和现有书签合并在每个文档的新书签下缩进。这样做可以方便用户浏览和导航PDF文档,并提升用户体验。

推荐的腾讯云相关产品:腾讯云对象存储(COS),它提供了高可靠、低成本的对象存储服务,适用于存储和管理各种类型的文件和数据。你可以将生成的新PDF文件上传到腾讯云对象存储,并通过腾讯云的CDN服务进行加速分发,以提高文件的访问速度和可靠性。

腾讯云对象存储产品介绍链接地址:https://cloud.tencent.com/product/cos

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

相关·内容

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

本文演示如何使用iTextSharp PDF库将文本文件转换为PDF文件。 iTextSharp是一个从JAVA项目iText衍生的.Net版本的开源项目,采用GPL许可证发布。...这个项目在创建PDF文件方面功能相当强大,弱点是缺少对于现有PDF文件进行修改和分析的功能。...十、章节(Chapter)和区域(Section) 章节的使用就比较少了,并且不太好控制,这就不作说明 十一、书签 简单创建书签,使用如下代码: 隐藏行号 复制代码 ? 这是一段程序代码。...Document类允许创建一个新的PDF文件。 PdfWriter类提供了从文档类对象编写PDF文档的即时访问。...PDF和使用iTextSharp工具转换为单个PDF的代码 The Code 1.

3.1K10

SciTE中文配置信息

view.indentation.whitespace=1 #设置空白符的前景色和背景色 whitespace.fore whitespace.back #每个空白缩进单元显示一条垂直线,修改后重启Scite...缩进字符数 indent.size=4 #缩进使用tab键 use.tabs=1 #缩进,就是自动保持前一行的缩进 #indent.auto=1 #智能缩进,和上面的区别就是有反缩进 indent.automatic...edge.colour=#F9F9F9 #设置错误行的前景色和背景色 error.marker.fore=#0000A0 error.marker.back=#DADAFF #设置书签列的前景色,背景色和透明度...=0 #编译错误定位到源代码 error.select.line=1 #外部的扩展,打印和导出文档的时候有用++++++++++++++++++++++++++++ #export.keep.ext=1...#输出PDF文档放大倍数 export.pdf.magnification=0 #PDF默认字体Font: Courier, Helvetica or Times (Courier line-wraps

1.3K40
  • LaTex安装(texlive+TeXmaker)

    DVI 格式文件是目前科研和出版领域广泛应用于书籍、文献、资料、论文、信件等的电子文件格式。...\end{document} %文档结尾,必须和开头一一对应,否则编译会报错 确实是很漂亮 \documentclass{article} \title{LaTex Title} \author{XXX...,编辑器的字体大小不可使用鼠标滑轮缩放大小 这个书签的功能挺有趣的,但是只能三个,有点不爽.对于每个文件,可以使用三个书签来加快导航速度:只需单击行号即可添加或删除书签。...当您已经定义了三个书签时,您必须删除其中一个才能添加新书签。要跳转到编辑器中书签对应的行,只需单击状态栏中的按钮。...写东西以后编译 一般是F5 鼠标在pdf上面单击会出现放大镜 可以方便的跳转源,以及可以反色 反色 一个较为完善地自动补全 当然了,VSCode可能才是心水之选,但是太难搞了。

    1.4K20

    我的Web开发实战总结(二)

    其次,jacob是对EXCEL中的每个单元格操作的,像上面的PDF中有图片读取很不方便,就算能打出图片也可能会很模糊,而且复杂的EXCEL更是无能为力。...2.利用iText将HTML 转为 PDF 这个思路就是我此篇要重点要讲的,将html转成PDF,首先html有图片,还有各种数据,那么怎么将图片和各种数据填充到html里面呢?...利用iText将HTML 转为 PDF 1.准备好生成pdf所需的jar包 CORE 包:主要是itext相关的一些核心itext.jar XML 包:xmlworker是一个基于iText的xml生成...对于一个标签中含有中文、数字或英文的时候,很可能会出现问题。这是因为xmlworker在渲染PDF的时候是以html的标签为单位的。我发现有些字体下部分中文生成pdf不会显示。...; // 5.关闭文档 document.close(); 本文中的利用itext生成PDF的代码如下: Document document = new Document

    1.7K10

    Python 处理 PDF 的神器 -- PyMuPDF

    功能 对于所有支持的文档类型可以: 解密文件 访问元信息、链接和书签 以栅格格式(PNG和其他格式)或矢量格式SVG呈现页面 搜索文本 提取文本和图像 转换为其他格式:PDF, (X)HTML, XML..."xml":不包含图像,但包含每个文本字符的完整位置和字体信息。使用XML模块进行解释。 e....因此,您可以轻松地使用创建新的PDF: - 第一页或最后10页 仅奇数页或偶数页(用于双面打印) 包含或不包含给定文本的页 颠倒页面顺序 保存的新文档将包含仍然有效的链接、注释和书签(i.a.w.指向所选页面或某些外部资源...连接和拆分PDF文档 方法Document.insert_pdf()在不同的pdf文档之间复制页面。...End 崔庆才的新书《Python3网络爬虫开发实战(第二版)》已经正式上市了!

    3.5K31

    开源免费且稳定实用的.NET PDF打印组件itextSharp(.NET组件介绍之八)

    一.itextSharp组件概述:          1.iText的是PDF库,它允许你创建,调整,检查和维护的可移植文档格式文件(PDF):         (1).基于从XML文件或数据库中的数据生成文件和报告...(2).创建地图和书籍,利用众多的互动在PDF可用的功能。         (3).添加书签,页码,水印等功能,以现有的PDF文件。        ...(4).从现有PDF文件拆分或连接页面;填写交互式表单。         (5).即成动态生成或操纵PDF文档到Web浏览器。       ...iText所使用的的Java,.NET,Android和GAE开发人员加强与PDF功能的应用程序。iTextSharp的是.NET端口。    ...对于打印的“文档”,具体看一下宽泛的概念,文档包含元素和节点等等。在组织打印的时候,我们需要创建文档,写入元素和节点等信息,最后组合成为我们需要打印的内容。

    7.8K50

    你需要的开源项目都在这里!

    Excel easyexcel :快速、简单避免OOM的java处理Excel工具。 PDF pdfbox :用于处理PDF文档的开放源码Java工具。...该项目允许创建新的PDF文档、对现有文档进行操作以及从文档中提取内容。PDFBox还包括几个命令行实用程序。PDFBox是在Apache 2.0版许可下发布的。...OpenPDF :OpenPDF是一个免费的Java库,用于使用LGPL和MPL开源许可创建和编辑PDF文件。OpenPDF基于iText的一个分支。...itext7 :iText 7代表了想要利用利用好 PDF 的开发人员的更高级别的 sdk。...iText 7配备了更好的文档引擎、高级和低级编程功能以及创建、编辑和增强 PDF 文档的能力,几乎对每个工作流都有好处。 FOP :Apache FOP 项目的主要的输出目标是PDF。

    1.1K21

    IDEA快捷键

    关于各个快捷键的频率分类上可能每个人都有各自的看法,下面的整理也只是以我个人的使用习惯来划分的,而我应该是可以代表某一部分小众人员。...+ F10 等效于点击工具栏的 Run 按钮 Shift + F11 弹出书签显示层 (必备) Shift + Tab 取消缩进 (必备) Shift + ESC 隐藏当前 或 最后一个激活的工具窗口.../blog/1005454 Mac 快捷键 根据官方pdf翻译:https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard_Mac.pdf...Command + P 显示方法的参数信息 Control + J 显示当前位置的变量、方法的 Documentation 内容 Control + J 快速查看文档 Shift + F1 查看外部文档...A 查找动作(可设置相关选项) Control + Shift + Tab 编辑窗口标签和工具窗口之间切换(如果在切换的过程加按上delete,则是关闭对应选中的窗口) Other(一些官方文档上没有体现的快捷键

    1.2K42

    Python处理PDF——PyMuPDF的安装与使用

    功能 对于所有支持的文档类型可以: 解密文件 - 访问元信息、链接和书签 - 以栅格格式(PNG和其他格式)或矢量格式SVG呈现页面 - 搜索文本 - 提取文本和图像 - 转换为其他格式:PDF...\ Pixmap包含以下引用的许多方法和属性。其中包括整数宽度、高度(每个像素)和跨距(一个水平图像行的字节数)。属性示例表示表示图像数据的矩形字节区域(Python字节对象)。...- "xml":不包含图像,但包含每个文本字符的完整位置和字体信息。使用XML模块进行解释。 e....因此,您可以轻松地使用创建新的PDF: - 第一页或最后10页- 仅奇数页或偶数页(用于双面打印)- 包含或不包含给定文本的页- 颠倒页面顺序 保存的新文档将包含仍然有效的链接、注释和书签(i.a.w...连接和拆分PDF文档 方法Document.insert_pdf()在不同的pdf文档之间复制页面。

    6.5K10

    Python处理PDF——PyMuPDF的安装与使用

    功能 对于所有支持的文档类型可以: 解密文件 - 访问元信息、链接和书签 - 以栅格格式(PNG和其他格式)或矢量格式SVG呈现页面 - 搜索文本 - 提取文本和图像 - 转换为其他格式:PDF...\ Pixmap包含以下引用的许多方法和属性。其中包括整数宽度、高度(每个像素)和跨距(一个水平图像行的字节数)。属性示例表示表示图像数据的矩形字节区域(Python字节对象)。...- "xml":不包含图像,但包含每个文本字符的完整位置和字体信息。使用XML模块进行解释。 e....因此,您可以轻松地使用创建新的PDF: - 第一页或最后10页- 仅奇数页或偶数页(用于双面打印)- 包含或不包含给定文本的页- 颠倒页面顺序 保存的新文档将包含仍然有效的链接、注释和书签(i.a.w...连接和拆分PDF文档 方法Document.insert_pdf()在不同的pdf文档之间复制页面。

    7.4K30

    顶级 Javaer 都在用的 20 个类库,真香!

    我花了很多时间来学习API,尤其是在阅读了Effective Java 3rd Edition之后 ,Joshua Bloch建议在Java 3rd Edition中使用现有的API进行开发,而不是为常见的东西编写新的代码...11、PDF库 与Microsoft Excel和World相似,PDF是另一种普遍存在的格式。...如果您需要在应用程序中支持PDF功能,例如将数据导出为PDF文件,则可以使用iText和Apache FOP库。两者都提供有用的PDF相关功能,但是iText变得越来越丰富和完善,我一直偏爱那种。...请参阅此处以了解有关iText的更多信息。...您可以使用JSoup不仅解析HTML,还可以创建HTML文档 它提供了使用DOM,CSS和类似jquery的最好方法提取和处理数据的非常方便的API。

    35610

    Java程序员应该知道的20个有用的库

    我花了很多时间学习API,特别是在阅读Effective Java 3rd Edition之后,Joshua Bloch建议如何使用现有的API进行开发,而不是为常用的东西写新的代码。...1.日志库 日志库非常常见,因为在每个项目中都需要它们。它们是服务器端应用最重要的东西,因为日志只放在可以看到应用程序当前运行时情况的地方。...PDF库 与Microsoft Excel类似,PDF库是另一种普遍存在的格式。如果你需要在应用程序中支持PDF功能,例如 导出数据到PDF文件,则可以使用iText和Apache FOP库。...两者都提供有用的PDF相关功能,但iText更丰富,更好。请参阅此处以了解有关iText的更多信息。 ?...你不仅可以使用JSoup解析HTML,还可以创建HTML文档 ? 它提供了一个非常方便的API,用于提取和操作数据,使用DOM,CSS和类似jquery的方法。

    85530

    PDF Explained(翻译)第一章 简介

    流式创建和增量更新 流式创建允许PDF文件按照从头至尾的顺序创建,即使文件比可用内存要大也没不会有任何问题。 增量更新意味着在编辑文件时,可以直接将更改写入文件末尾而无需改动现有内容。...特殊种类的PDF 有一些PDF格式的特殊变体,它们是PDF的子集。每个文件都是一个合法的PDF文档,但是做了一些限制。其中的两个是PDF/A和PDF/X,他们有各自的ISO标准。...PDF/A PDF/A标准(ISO 190005-1:2005)定义了一套文档规则,主要用于图片馆,档案馆和一些机构的长期存档文件。...创建者(创建内容的程序)和制作者(编写文件的程序)也会被记录下来。每个文档还有一组唯一标识,以便通过工作流对其进行跟踪。...从PDF1.4版本开始,元数据可以使用XML存储,这些XML可以直接嵌入PDF中。这使得第三方可以在文档中保存与其特定工作流或产品相关的信息。 导航 文档大纲,通常称为文档的书签。 ?

    1.7K20

    Python 处理 PDF —— PyMuPDF 的安装与使用!

    功能 对于所有支持的文档类型可以: 解密文件 访问元信息、链接和书签 以栅格格式(PNG和其他格式)或矢量格式SVG呈现页面 搜索文本 提取文本和图像 转换为其他格式:PDF, (X)HTML, XML...\ Pixmap包含以下引用的许多方法和属性。其中包括整数宽度、高度(每个像素)和跨距(一个水平图像行的字节数)。属性示例表示表示图像数据的矩形字节区域(Python字节对象)。..."xml":不包含图像,但包含每个文本字符的完整位置和字体信息。使用XML模块进行解释。 e....因此,您可以轻松地使用创建新的PDF: 第一页或最后10页 仅奇数页或偶数页(用于双面打印) 包含或不包含给定文本的页 颠倒页面顺序 保存的新文档将包含仍然有效的链接、注释和书签(i.a.w.指向所选页面或某些外部资源...连接和拆分PDF文档 方法Document.insert_pdf()在不同的pdf文档之间复制页面。

    2.4K10

    Python处理PDF——PyMuPDF的安装与使用!

    功能 对于所有支持的文档类型可以: 解密文件 -  访问元信息、链接和书签 -  以栅格格式(PNG和其他格式)或矢量格式SVG呈现页面 -  搜索文本 -  提取文本和图像 -  转换为其他格式:PDF...\ Pixmap包含以下引用的许多方法和属性。其中包括整数宽度、高度(每个像素)和跨距(一个水平图像行的字节数)。属性示例表示表示图像数据的矩形字节区域(Python字节对象)。...- "xml":不包含图像,但包含每个文本字符的完整位置和字体信息。使用XML模块进行解释。 e....因此,您可以轻松地使用创建新的PDF: - 第一页或最后10页- 仅奇数页或偶数页(用于双面打印)- 包含或不包含给定文本的页- 颠倒页面顺序 保存的新文档将包含仍然有效的链接、注释和书签(i.a.w...连接和拆分PDF文档 方法Document.insert_pdf()在不同的pdf文档之间复制页面。

    4.1K10

    20个对Java程序员有用的开源库

    1.日志库 日志库非常常见,因为在每个项目中都需要它们。对于服务器端应用程序来说,日志是最重要的,因为日志只放在您可以看到应用程序上发生了什么事情的地方。...PDF 类库 与Microsoft Excel类似,PDF库是另一种无处不在的格式。如果需要在应用程序中支持PDF功能,比如在PDF文件中导出数据,可以使用iText和Apache FOP库。...两者都提供了有用的PDF相关功能,但iText更丰富、更好。 12.日期和时间相关库 在Java 8之前,JDK的数据和时间库有很多缺陷,因为它们不是线程安全的、不可变的和容易出错的。...HTML Parsing 库 与JSON和XML类似,HTML是我们许多人不得不处理的另一种常见文档格式。谢天谢地,我们有了JSoup,它极大地简化了在Java应用程序中使用HTML的工作。...使用JSoup,您不仅可以解析HTML,还可以创建HTML格式文档 16.Cryptographic 库 Apache Commons Codec包包含简单的编码器和各种格式的解码器,如Base64和十六进制

    1.2K20

    避免重复造轮子,Java 程序员必备!!

    优秀且经验丰富的 Java 开发人员的特点之一是对 API 的广泛了解,包括 JDK 和第三方库。如何使用现有的 API 进行开发,而不是为常见的东西编写新的代码。是提升开发效率必选之路。...为了使用这些库,Java 开发人员应该熟悉这一点,这就是本文的重点。如果您有一个想法,那么您可以研究该库并使用它。 1. 日志库 日志库非常常见,因为您在每个项目中都需要它们。...PDF 库 与 Microsoft Excel 类似,PDF 库是另一种普遍存在的格式。...如果您需要在应用程序中支持 PDF 功能,例如 在 PDF 文件中导出数据,您可以使用 iText 和 Apache FOP 库。 两者都提供有用的 PDF 相关功能,但 iText 更丰富更好。...您可以使用JSoup不仅解析 HTML,还可以创建 HTML 文档 它提供了一个非常方便的 API 用于提取和操作数据,使用最好的DOM、CSS 和类似 jquery 的方法。

    78410

    Sublime 教程 for Economists

    本文旨在为经济学专业的学生和老师,介绍一款文本编辑器,Sublime。...LatexTools:在Sublime内编译Latex文档(需安装Sumatra Pdf Viewer)。 LatexCwl:提供Latex语句的自动填充。...Ctrl + ]: 缩进当前行 Ctrl + [: 取消缩进当前行 Ctrl + M: 跳到结束括号;重复操作跳到开始括号 Ctrl + Shift + M : 选择当前圆括号的所有内容 Ctrl +...这两个插件的安装方法跟上面介绍的安装StataEditor的方法类似,这里不再赘述了。 但如果我们希望能够在Sublime中预览pdf文档,需要安装Sumatra Pdf Viewer。...在引用文献时,输入 \cite{} 会跳出对话框提示现有bibtex中的参考文献,直接点击想要引用的文献名称即可,也可以直接在对话框里搜索文章或者作者的名字。 ?

    1.3K20

    Python 自动化指南(繁琐工作自动化)第二版:十五、使用 PDF 和 WORD 文档

    PDF 文档 PDF代表可移植文档格式,使用pdf文件扩展名。虽然 PDF 支持许多功能,但本章将集中讨论您最常使用它们做的两件事:从 PDF 读取文本内容和从现有文档制作新的 PDF。...相反,您必须创建一个新的 PDF,然后从现有文档中复制内容。本节中的示例将遵循这一通用方法: 将一个或多个现有 PDF(源 PDF)打开到PdfFileReader对象中。...尽管有很多免费的程序可以合并 PDF 文件,但是很多程序只是将整个文件合并在一起。让我们编写一个 Python 程序来定制在合并的 PDF 中需要哪些页面。...例如,要缩进每个段落,用下面的代码替换readDocx.py中的append()调用: fullText.append(' ' + para.text) 要在段落之间添加双倍空格,请将join()调用代码改为...如何为一个新的 Word 文档创建一个Document对象? 如何将文本为'Hello, there!'的段落添加到存储在名为doc的变量中的Document对象中?

    3.7K50
    领券