如何使用iText实现pdf文本内容的抽取?

最近在使用iText实现pdf文本内容的抽取,我使用PdfTextExtractor.getTextFromPage将每一页中的文本提取出来,但是提取出来的txt文件当中全是空格,没有一个文字,请问这是什么情况?是pdf文档的问题还是代码的问题啊?

public class GetText 
{
    public static void main(String[] args) throws DocumentException, IOException
    {
        String outputpath = "XXX.txt";//txt文件路径
        PrintWriter writer = new PrintWriter(new FileOutputStream(outputpath));//txt文件写入流 
        String pdffilepath = "XXX.pdf";//pdf文件路径 
        inspect(writer,pdffilepath); //调用读取方法 
        writer.close(); 
    }
    public static void inspect(PrintWriter writer, String filename) throws IOException
    {
        try {
            PdfReader reader = new PdfReader(filename); //读取pdf所使用的输出流 
            int PageNum = reader.getNumberOfPages();//获得页数 

            String content = "";  //存放读取出的文档内容 
            for (int i = 1; i <=PageNum; i++)
            {
                content += PdfTextExtractor.getTextFromPage(reader, i);//读取第i页的文档内容 
            } 
            writer.write(content);//写入文件内容 
            writer.flush(); 
        } catch (IOException e) {
            e.printStackTrace();  
        }
     }
}

http://blog.csdn.net/wzumath/article/details/8260286

是不是文件的问题啊,你pdf里的是文字是文本还是图片啊。

我用你的代码是可以的。

楼主可以试试Spire.pdf for .net控件,我用过,它支持提取PDF文档中的信息,不管是文本还是图片都是可以的。而且不仅是文档中所有内容,也可提取指定内容的信息。下面是相关代码示例链接,你可以参考。
spire.pdf for .net产品获取链接:


提取pdf文档中的文本和图片:
C#/VB.NET 如何提取 PDF 文档中的文本和图片 文本和图片是PDF文档的重要组成部分。本文将介绍如何通过编程的方式使用C#获取PDF文档中的文本和图片并保存到本地路径。 提取PDF文档中的文本 C# //实例化一个PdfDocument对象 PdfDocument doc = new PdfDocument(); //加载PDF文档 doc.Lo... https://www.e-iceblue.cn/extract/extract-text-and-image-from-pdf.html

提取pdf文档中指定区域的文本:
C#/VB.NET 从 PDF 页面的指定区域内提取文本 有时我们可能需要获取PDF页面中某个区域内的文本而不是全部的文本。本文将介绍如何使用Spire.PDF组件提取PDF页面中指定矩形区域内的文本。 以下是我们所使用的示例文档截图,红色矩形区域是即将提取文本的区域。 C# //创建PdfDocument实例 PdfDocument pdf = new... https://www.e-iceblue.cn/extract/extract-text-from-a-specific-rectangular-area-in-pdf.html