C#如何从PDF页面URL获取PDF文本

时间:2016-08-22 04:54:00

标签: c# .net visual-studio web-services c#-4.0

C#如何从pdf page url

获取PDF格式的文本

例如,网页包含PDF文本,我想阅读页面中的所有文本

3 个答案:

答案 0 :(得分:0)

PDFBox是一个Java PDF库,您也可以在C#中使用。

你应该

1.解压缩包" PDFBox.zip",获取

IKVM.GNU.Classpath.dll
PDFBox-0.7.3.dll
FontBox-0.1.0-dev.dll
IKVM.Runtime.dll

2.将此DLL导入您的C#项目。使用:

using org.pdfbox.pdmodel;
using org.pdfbox.util;

3.编写您的代码可能是这样的:

using System.IO;
using System.Text;
using org.pdfbox.pdmodel;
using org.pdfbox.util;

namespace PDFReader
{
    class Program
    {

        public static void pdf2txt(FileInfo pdffile, FileInfo txtfile)
        {

            PDDocument doc = PDDocument.load(pdffile.FullName);

            PDFTextStripper pdfStripper = new PDFTextStripper();

            string text = pdfStripper.getText(doc);

            StreamWriter swPdfChange = new StreamWriter(txtfile.FullName, false, Encoding.GetEncoding("gb2312"));

            swPdfChange.Write(text);

            swPdfChange.Close();

        }

        static void Main(string[] args)
        {
            pdf2txt(new FileInfo(@"C:/Users/yourpdf.pdf"), new FileInfo(@"C:/Users/yourcontent.txt"));
        }
    }
}

希望这可以帮到你。

答案 1 :(得分:0)

//首先发送页面www.abc.com的源路径

public byte[] GetByteArray(string sourcePath)
    {
        byte[] outBytes = null;
        try
        {
            using (WebClient wc = new WebClient())
            {
                outBytes = wc.DownloadData(sourcePath);
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
        return outBytes;
    }

//上面的方法返回一个字节数组使用该字节数组
//使用Itextsharp.dll从字节数组中获取文本 //用于下载给定https://sourceforge.net/projects/itextsharp/

的库使用链接
  public string[] GetLines(byte[] outBytes)
    {
        string resultPdfText = "";
        string[] lines = null;
        try
        {
            MemoryStream outPDF = new MemoryStream();
            using (PdfReader pdfr = new PdfReader(outBytes))
            {
                iTextSharp.text.Document doc = new iTextSharp.text.Document();
                iTextSharp.text.Document.Compress = true;
                PdfWriter writer = PdfWriter.GetInstance(doc, outPDF);
                doc.Open();
                for (int i = 1; i <= pdfr.NumberOfPages; i++)
                {
                    resultPdfText += PdfTextExtractor.GetTextFromPage(pdfr, i, new LocationTextExtractionStrategy());
                }
                lines = resultPdfText.Split('\n');
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
        return lines;
    }

答案 2 :(得分:-1)

如果您想从在线源加载pdf,请使用此库添加此代码

using System.IO;
using org.apache.pdfbox.pdmodel;
using org.apache.pdfbox.util;
using System.Text;
using java.net;

并在代码中使用像这样的新URL()方法更改加载文件方法

        PDDocument doc = PDDocument.load((new URL("http://www.pdf995.com/samples/pdf.pdf")));

        PDFTextStripper pdfStripper = new PDFTextStripper();

        string text = pdfStripper.getText(doc);