用Java 读取 PDF 遇到中文标签该怎么处理

Python011

用Java 读取 PDF 遇到中文标签该怎么处理,第1张

直接使用系统字体读取或创建带中文的pdf,需要注意jar的版本。

<dependency>

<groupId>com.itextpdf</groupId>

<artifactId>itextpdf</artifactId>

<version>5.5.8</version>

</dependency>

<dependency>

<groupId>com.itextpdf</groupId>

<artifactId>itext-asian</artifactId>

<version>5.2.0</version>

</dependency>

<dependency>

<groupId>com.itextpdf.tool</groupId>

<artifactId>xmlworker</artifactId>

<version>5.5.6</version>

</dependency>123456789101112131415

代码如下,覆写XMLWorkerFontProvider$getFont即可读取中文

public void createPdf(String src, String dest) throws IOException, DocumentException {

Document document = new Document()

PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest))

document.open()

XMLWorkerHelper.getInstance().parseXHtml(writer, document, new FileInputStream(src), null, new XMLWorkerFontProvider(){public Font getFont(final String fontname, final String encoding,

final boolean embedded, final float size, final int style,

final BaseColor color) {

BaseFont bf = null

try {

bf = BaseFont.createFont("C:/Windows/Fonts/SIMYOU.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED)

} catch (Exception e) {

e.printStackTrace()

}

Font font = new Font(bf, size, style, color)

font.setColor(color)

return font

}

})

document.close()

}1234567891011121314151617181920212223

创建时,使用系统(windows下)的字体即可

BaseFont baseFont = BaseFont.createFont("C:/Windows/Fonts/SIMYOU.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED)

Font font = new Font(baseFont)

《Java中文文本信息处理从海量到精准》百度网盘pdf最新全集下载:

链接: https://pan.baidu.com/s/1Ld5a0-n8yvGWgGujtVN8Aw

?pwd=pzxa 提取码: pzxa

简介:Java中文文本信息处理从海量到精准以让零基础的读者通过自学完成一个中文分词系统为目标,从Java基础语法开始讲解,然后介绍文本处理相关的数据结构和算法,最后介绍如何实现文本切分和词性标注。本书是介绍业界热门的以Java开发中文分词技术的专享书籍。  

修复你的PDF软件或者调整页面顺序。

java解析pdf获取pdf中内容信息:

第一种 使用开源组织提供的开源框架 pdfboxapi ; https://pdfbox.apache.org/

特点:免费,功能强大,解析中文或许会存在乱码,默认格式有点乱,没有国产解析的那么美化。

想要按行读取:可以按照指定的模板,对pdf进行修改添加删除等操作,总之操作很骚,很强大。

1.pdfbox 需要带入依赖。

2.代码。

第二种使用国产的框架 Spire.PDF包含两种版本。

1 免费版。

https://www.e-iceblue.cn/Downloads/Free-Spire-PDF-JAVA.html

友情提示: 免费版有 10 页的页数输出限制,在输出结果文档时只能输出前10页。将 PDF 文档转换为图片、Word、HTML、XPS等格式时,仅支持转换前 10 页。如超出限制,可升级到商业版,我们仅对免费版进行不定期维护。

2 商业版本。

https://www.e-iceblue.cn/Introduce/Spire-PDF-JAVA.html。

api。

http://e-iceblue.cn/licensing/install-spirepdf-for-java-from-maven-repository.html。

特点:商业版本收费,免费版本有限制,可供开发人员调试,解析格式友好,解析结果是按照行显示,对pdf 图形 ,水印 ,文本, 条形码等添加增删改操作,总之个人感觉比pdfbox顺手,但就是收费啊,谁让咱公司没钱呢。

主要功能:

只需 Free Spire.PDF for Java,无需 Adobe Acrobat。

Free Spire.PDF for Java 是一款完全独立的 PDF 类库。它的运行环境无需安装 Adobe Acrobat 或其他任何第三方组件。

多样化的PDF文档操作功能。

Free Spire.PDF for Java 支持画文本、图片、表格、条形码、形状到 PDF,提取文本和图片,创建、填充和删除 PDF 表单,添加文本/图片水印到 PDF,添加、更新和删除 PDF 书签,操作超链接、附件和注释,以及添加图片/文本印章到 PDF 等。

文档信息设置。

Free Spire.PDF for Java 支持设置 PDF 文档信息,例如文档属性设置,偏好设置(页面方向,页面大小,缩放比例等)。

高质量的文档转换功能。

Free Spire.PDF for Java 支持将 PDF 文档高质量地转换为 Word、HTML、XPS、图片、SVG 和 PDF/A 格式,以及将 XPS 文档高质量地转换为 PDF 格式。

文档安全性设置。

Free Spire.PDF for Java 支持给 PDF 文档添加和验证数字签名,加密和解密 PDF 文档,修改 PDF 文档的安全权限,以及检测签名后的 PDF 文档是否被修改。

易于集成。

开发人员可以轻易地将 Free Spire.PDF for Java 集成到 Java(J2SE和J2EE)应用程序中。