当前位置: 首页 > 知识库问答 >
问题:

PDFBox - 从多个PDF中读取文本并将其加载到多个文本文件中

轩辕翰
2023-03-14

我在一个文件夹中有 1000 多个 pdf 文件,每个文件都要转换并保存在其相应的文本文件中。我对 Java 有点陌生,我正在使用 PDFBox 进行转换;我成功地获得了一个pdf的代码,但我被困在一个文件夹中对所有PDF进行转换。有人可以帮助我在 Java 中实现这一目标吗?.

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;

public final class ExtractPdf
{


public static void main( String[] args ) throws IOException
{
    String fileName = "sample.pdf"; 
    PDDocument document = null;

    try (PrintWriter out = new PrintWriter("out.txt"))
    {
        document = PDDocument.load( new File(fileName));
        PDFTextStripper stripper = new PDFTextStripper();
        String pdfText = stripper.getText(document).toString();
        System.out.println( "Text in the area:" + pdfText);
        out.println(pdfText);

    }
    finally
    {
        if( document != null )
        {
            document.close();
        }
    }
 }
}

谢谢,免费

共有1个答案

崔涵亮
2023-03-14

基本上你的问题是如何通过目录…

public static void main(String[] args) throws IOException
{
    File dir = new File("....");
    File[] files = dir.listFiles(new FilenameFilter()
    {
        // use anonymous inner class 
        @Override
        public boolean accept(File dir, String name)
        {
            return name.toLowerCase().endsWith(".pdf");
        }
    });
    // null check omitted!
    for (File file : files)
    {
        int len = file.getAbsolutePath().length();
        String txtFilename = file.getAbsolutePath().substring(0, len - 4) + ".txt";
        // check whether txt file exists omitted
        try (OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(txtFilename), Charsets.UTF_8);
             PDDocument document = PDDocument.load(file))
        {
            PDFTextStripper stripper = new PDFTextStripper();
            stripper.writeText(document, out);
        }
    }
    // exception catch omitted. Add code here to avoid your whole job
    // dying if only one file is broken
}
 类似资料:
  • 主要内容:合并多个PDF文档,示例在前一章中,我们已经看到如何将给定的PDF文档分成多个文档。 现在让我们学习如何将多个PDF文档合并为一个文档。 合并多个PDF文档 使用类的类将多个PDF文档合并到单个PDF文档中,该类提供了将两个或多个PDF文档合并到单个PDF文档中的方法。 以下是合并多个PDF文档的步骤。 第1步:加载现有的PDF文档 使用类的静态方法加载现有的PDF文档。 此方法接受一个文件对象作为参数,因为这是一个静态

  • 问题内容: 有什么方法可以读取文本文件并将内容存储在Jtable中?我有一个文本文件,其中包含有关某些过程的某些信息。就像一个具有列和各自值的表。是否可以获取.txt文件的内容并以Jtable的形式显示?我正在使用Eclipse和Window Builder。任何帮助将不胜感激。谢谢! 问题答案: 我将研究Oracle的教程: 读/写文本文件 JTable教程 当从文本文件中获取数据时,您需要将其

  • 问题内容: 我需要处理分散在各个目录中的多个文件。我想将所有这些加载到单个RDD中,然后在其上执行map / reduce。我看到SparkContext能够使用通配符从单个目录加载多个文件。我不确定如何从多个文件夹加载文件。 以下代码段失败: 这在第三个循环中失败,并显示以下错误消息: 鉴于我仅提供了两个参数,所以这很奇怪。任何指针表示赞赏。 问题答案: 措辞如何呢? 在Scala中,有两种变体

  • 问题内容: 假设我们有许多文本文件,如下所示: 文件1: 文件2: 文件3: 文件4: 我们如何制作一个文本文件,如下所示: 结果: 相关代码可能是: 在这之后?有什么帮助吗? 问题答案: 您可以将每个文件的内容直接读取到输出文件句柄的write方法中,如下所示:

  • null > 构造函数,它接受两个输入:(String,String)。这两个输入以正确的顺序表示lastname和firstname。构造函数只需将参数中的数据分配给实例变量。 名为toString()的公共实例方法,它返回一个字符串数据(学生的姓名),格式为“lastname,firstname”。 类MainApp null

  • 问题内容: 我一直试图将多个文件加载到一个表中,以便它们适合同一行。 我可以将它们分别插入,但是问题出在值之内,因此我打算加入该表。如果发生这种情况,我会得到太多的值-无用的数据。 我实际上研究过的另一件事是将文件与 但是,它变成了一个烂摊子。如果第一种方法不起作用,那么我可以使用第二种方法,但是我也需要有关它的建议。 问题答案: 您可以将4个文件加载到4个(临时)表中(每个表都有一个自动编号的字

  • 假设我在同一目录中有9个.txt文件。price1.txt价格2.txt价格3.txt是来自不同位置的价格表,行和列名称相应地是经度和海拔高度。year4,5,6.txt和dis7,8,9.txt是与文本1中相同位置的年份和折扣表。 我想创建一个新的数据框,其中每列都是价格、年份、折扣的列表,来自文本1-9,具有相应的经度和姿态。 我能够使用 要读取文件的名称 我能够使用 将每个文件放在一起。 但

  • 问题内容: 我想知道如何从单个文件夹中读取多个文件(无需指定文件名,只是它们是json文件)。 另外,有可能将它们转换为DataFrame吗? 能给我一个基本的例子吗? 问题答案: 一种选择是使用os.listdir列出目录中的所有文件,然后仅查找以’.json’结尾的文件: 现在,您可以使用pandas DataFrame.from_dict将json(此时为python字典)读入pandas数