使用xpdf来处理中文PDF文档
package ch7.xpdf;
import java.io.*;
public class Pdf2Text {
// PDF文件名
private File pdffile;
// 转换器的存放位置,默认在c:\xpdf下面
private String CONVERTOR_STORED_PATH = "c:\\xpdf";
// 转换器的名称,默认为pdftotext
private String CONVERTOR_NAME = "pdftotext";
// 构造函数,参数为pdf文件的路径
public Pdf2Text(String pdffile) throws IOException {
this(new File(pdffile));
}
// 构造函数,参数为pdf文件的对像
public Pdf2Text(File pdffile) throws IOException {
this.pdffile = pdffile;
}
// 将pdf转为文本文档
public void toTextFile() throws IOException {
toTextFile(pdffile, true);
}
// 将pdf转为文本文档,参数为目标文件的路径,默认使用PDF文件中的布局
public void toTextFile(String targetfile) throws IOException {
toTextFile(new File(targetfile), true);
}
// 将pdf转为文本文档,参数1为目标文件的路径,
// 参数2为true则表示使用PDF文件中的布局
public void toTextFile(String targetfile, boolean isLayout)
throws IOException {
toTextFile(new File(targetfile), isLayout);
}
// 将pdf转为文本文档,参数为目标文件
public void toTextFile(File targetfile) throws IOException {
toTextFile(targetfile, true);
}
// 将pdf转为文本文档,参数1为目标文件,
// 参数2为true则表示使用PDF文件中的布局
public void toTextFile(File targetfile, boolean isLayout)
throws IOException {
String[] cmd = getCmd(targetfile, isLayout);
Process p = Runtime.getRuntime().exec(cmd);
}
// 获取PDF转换器的路径
public String getCONVERTOR_STORED_PATH() {
return CONVERTOR_STORED_PATH;
}
// 设置PDF转换器的路径
public void setCONVERTOR_STORED_PATH(String path) {
if (!path.trim().endsWith("\\"))
path = path.trim() + "\\";
this.CONVERTOR_STORED_PATH = path;
}
// 解析命令行参数
private String[] getCmd(File targetfile, boolean isLayout) {
// 命令字符
String command = CONVERTOR_STORED_PATH + CONVERTOR_NAME;
// PDF文件的绝对路径
String source_absolutePath = pdffile.getAbsolutePath();
// 输出文本文件的绝对路径
String target_absolutePath = targetfile.getAbsolutePath();
// 保持原来的layout
String layout = "-layout";
// 设置编码方式
String encoding = "-enc";
String character = "GBK";
// 设置不打印任何消息和错误
String mistake = "-q";
// 页面之间不加入分页
String nopagebrk = "-nopgbrk";
// 如果isLayout为false,则设置不保持原来的layout
if (!isLayout)
layout = "";
return new String[] { command, layout, encoding, character, mistake,
nopagebrk, source_absolutePath, target_absolutePath };
}
}
package ch7.xpdf;
import java.io.*;
public class Pdf2TextTest {
public static void main(String[] args) {
try {
// 参数输入PDF文件的存放位置
Pdf2Text p2t = new Pdf2Text("c:\\test.pdf");
// 设定转换器的位置
p2t.setCONVERTOR_STORED_PATH("c:\\xpdftest\\xpdf");
// 设置文本文件存放位置
p2t.toTextFile("c:\\test.txt");
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
PDF到Text的转换是XPDF的核心功能之一。通过`pdftotext`命令行工具,用户可以将PDF文档的文本内容提取出来,生成纯文本文件。这对于需要对PDF文档进行文本分析、数据抓取或者文本处理的场景非常有用。例如,研究人员...
### 使用xpdf提取中文PDF文档知识点详解 #### 一、前言 随着数字化时代的到来,PDF文档因其良好的兼容性和稳定性而被广泛应用于各种场景中。然而,在处理包含大量中文内容的PDF时,如何高效准确地提取其中的文字...
PDF(Portable Document Format)是一种广泛使用的文件格式,用于呈现和交换文档。而HTML(HyperText Markup Language)则是构成Web页面的基础语言之一。由于PDF文件在不同设备上能够保持一致的外观,而HTML则更适合...
- `pdftotext`:这个命令是XPDF工具包的一部分,可以在Linux、macOS和Windows上使用,通过命令行直接将PDF转换为TXT。 - `poppler-utils`:这是一组PDF处理工具,也包含`pdftotext`,适用于多种操作系统。 4. **...
标签中的"xpdf"可能是指Xpdf工具集,这是一个开源的PDF工具集合,提供了PDF的读取、转换等功能。尽管Spire.PDF与Xpdf在功能上有一定的重叠,但它们是两个独立的库,分别具有各自的优点和适用场景。Spire.PDF更专注...
要使用Lucene的xpdf包进行PDF到TXT的转换,首先需要在项目中引入相关的依赖。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache.lucene <artifactId>lucene-pdfbox 版本号 ``` ...
同样,可以通过Java调用这些命令行工具来处理PDF文件,如`pdftotext`可以将PDF转换为纯文本,便于进一步处理。 总的来说,Java中读取PDF文件内容主要依赖于第三方库,如Apache PDFBox,同时也可结合命令行工具如...
对于更复杂的需求,可能需要考虑使用更强大的解决方案,如Adobe的PDF-to-text功能或在线转换服务。 6. **注意事项** - PDFtoTEXT可能无法处理加密的PDF文件,除非提供了正确的密码。 - 如果PDF包含扫描的图像或...
例如,`pdftotext`命令可以将PDF转换为纯文本。 以上是Java处理不同类型文档的一些常用库和方法。在实际开发中,应根据项目需求和性能考虑选择合适的方法。例如,如果只是简单地提取文本,PDFBox和Apache POI就足够...
4. **运行命令**:在终端中,使用`php artisan pdf:totext`(假设命令名为`pdf:totext`)执行这个命令,根据指定的PDF路径和输出路径进行转换。 除了Artisan命令,你还可以创建一个服务类,封装`pdftotext`的调用,...
之后,采用Python驱动xpdf程序中的pdf2text.exe模块进行读取,并将读取内容展示在程序浏览框中,同时保存文本格式文件。 - 模型训练部分包括了将分词后的数据集转换为计算机可以识别的编码,并划分成训练集和验证集...
此外,这个库还支持图像渲染,可以将PDF页面转换为图像文件,这对于生成预览或者进行OCR(光学字符识别)操作非常有用。不过,需要注意的是,图像渲染通常需要额外的依赖,如Qt库。 在实际项目中,Python-poppler常...
`pdf2text`是由Xpdf项目提供的一个命令行工具,可以将PDF文档解码为文本。在PHP中,你可以通过`exec()`函数或者`shell_exec()`函数调用这个命令行工具,实现程序化的转换操作。例如: ```php $command = ...