前言:
此时各位老铁们对“java读取pdf”大体比较注重,姐妹们都想要剖析一些“java读取pdf”的相关文章。那么小编也在网摘上网罗了一些关于“java读取pdf””的相关知识,希望各位老铁们能喜欢,姐妹们一起来了解一下吧!一、序言
在前文中,我曾介绍过如何使用Java程序来添加、读取、删除Word书签。与Word文档一样,PDF文档同样也可进行书签的添加、修改及读取。本文就将通过代码演示来详细讲解其操作方法。
二、环境搭建
本文代码演示所用到的工具为Free Spire.PDF for Java, 可通过E-iceblue中文官网下载获取。解压文档后将lib文件夹下的Spire.Pdf.jar手动导入Java程序。
另外,也可通过Maven仓库将JAR包安装到Maven项目中。仅需在pom.xml文件中配置Maven仓库路径,并指定Free Spire.PDF for Java的Maven依赖。配置完成后,点击“Import Changes”即可导入JAR包。
<repositories> <repository> <id>com.e-iceblue</id> <url>;/url> </repository></repositories><dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.pdf.free</artifactId> <version>2.6.3</version> </dependency></dependencies>三、代码演示
示例 1 添加PDF书签
import com.spire.pdf.PdfDocument;import com.spire.pdf.PdfPageBase;import com.spire.pdf.actions.PdfGoToAction;import com.spire.pdf.bookmarks.PdfBookmark;import com.spire.pdf.bookmarks.PdfTextStyle;import com.spire.pdf.general.PdfDestination;import com.spire.pdf.graphics.PdfRGBColor;import java.awt.*;import java.awt.geom.Point2D;public class AddBookmark { public static void main(String[] args) { //创建PdfDocument实例 PdfDocument pdf = new PdfDocument(); //加载PDF文档 pdf.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.pdf"); //获取第一页 PdfPageBase page = pdf.getPages().get(0); //添加书签 PdfBookmark bookmark = pdf.getBookmarks().add("贴春联"); //设置书签的目标页面和位置 PdfDestination destination = new PdfDestination(page, new Point2D.Float(0, 0)); bookmark.setAction(new PdfGoToAction(destination)); //设置字体颜色 bookmark.setColor(new PdfRGBColor(new Color(2, 139, 2))); //设置字体样式 bookmark.setDisplayStyle(PdfTextStyle.Bold); //添加子书签 PdfBookmark childBookmark = bookmark.add("春联的种类比较多,依其使用场所,可分为门心、框对、横披、春条、斗方等。"); //设置子书签的目标页面和位置 PdfDestination childDestination = new PdfDestination(page, new Point2D.Float(0, 100)); childBookmark.setAction(new PdfGoToAction(childDestination)); //设置字体颜色 childBookmark.setColor(new PdfRGBColor(new Color(255, 80, 226))); //设置字体样式 childBookmark.setDisplayStyle(PdfTextStyle.Italic); //保存结果文档 pdf.saveToFile("output/AddBookmarks.pdf"); }}
添加效果:
示例 2 修改PDF书签
import com.spire.pdf.PdfDocument;import com.spire.pdf.bookmarks.PdfBookmark;import com.spire.pdf.bookmarks.PdfTextStyle;import com.spire.pdf.graphics.PdfRGBColor;import java.awt.*;public class EditBookmark { public static void main(String[] args) { //创建PdfDocument实例 PdfDocument doc = new PdfDocument(); //加载PDF文档 doc.loadFromFile("C:\\Users\\Test1\\Desktop\\AddBookmarks.pdf"); //获取第一个书签 PdfBookmark bookmark = doc.getBookmarks().get(0); //修改书签的标题 bookmark.setTitle("新标题"); //修改书签的字体颜色 bookmark.setColor(new PdfRGBColor(new Color(255,0,0))); //修改书签的字体样式 bookmark.setDisplayStyle(PdfTextStyle.Italic); //修改第一个书签的子书签的字体颜色和字体样式 for (PdfBookmark childBookmark : (Iterable <PdfBookmark>) bookmark) { childBookmark.setColor(new PdfRGBColor(new Color(0, 0, 255))); childBookmark.setDisplayStyle(PdfTextStyle.Bold); } //保存文档 doc.saveToFile("output/EditBookmarks.pdf"); doc.close(); }}
修改效果:
示例 3 读取PDF书签
import com.spire.pdf.*;import com.spire.pdf.bookmarks.PdfBookmark;import com.spire.pdf.bookmarks.PdfBookmarkCollection;import java.io.FileWriter;import java.io.IOException;public class ReadBookmark { public static void main(String[] args) { //加载包含书签的PDF文档 PdfDocument pdf = new PdfDocument(); pdf.loadFromFile("C:\\Users\\Test1\\Desktop\\AddBookmarks.pdf"); //获取书签集合 PdfBookmarkCollection bookmarkCollection = pdf.getBookmarks(); //实例化StringBuilder类 StringBuilder stringbuilder = new StringBuilder(); //定义方法获取书签 GetBookmarkTitle(bookmarkCollection, stringbuilder); //声明txt文件,并将获得的多级书签写入到文件.txt FileWriter writer; try { writer = new FileWriter("output/ReadBookmark.txt"); writer.write(stringbuilder.toString()); writer.flush(); } catch (IOException e) { e.printStackTrace(); } pdf.dispose(); } //定义方法获取书签标题 static void GetBookmarkTitle(PdfBookmarkCollection bookmarkCollection, StringBuilder stringbuilder) { if (bookmarkCollection.getCount()> 0) { for(int i = 0 ; i< bookmarkCollection.getCount(); i++ ) { PdfBookmark parentBookmark = bookmarkCollection.get(i); stringbuilder.append(parentBookmark.getTitle()); //递归文档多级书签 GetBookmarkTitle(parentBookmark, stringbuilder); } } }}
读取效果:
(本文完)
标签: #java读取pdf