A resposta fornecida por Brock Nusser parece ser a solução mais atualizada e deve ser considerada a resposta certa para esta pergunta
ceetheman
Mais respostas do iTextSharp atualizadas aqui, uma vez que esta questão está fechada.
VDWWD
Respostas:
116
Desde que esta pergunta foi respondida pela última vez em 2008, o iTextSharp melhorou sua API dramaticamente. Se você baixar a versão mais recente de seu api em http://sourceforge.net/projects/itextsharp/ , você pode usar o seguinte trecho de código para extrair todo o texto de um pdf em uma string.
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
namespace PdfParser{publicstaticclassPdfTextExtractor{publicstaticstring pdfText(string path){PdfReader reader =newPdfReader(path);string text =string.Empty;for(int page =1; page <= reader.NumberOfPages; page++){
text +=PdfTextExtractor.GetTextFromPage(reader,page);}
reader.Close();return text;}}}
Olá ceetheman, tentei usar o código que você forneceu acima ... mas obtive um problema. Meus alguns arquivos PDF são lidos corretamente, mas em alguns arquivos PDF, obtive o erro "Índice fora do intervalo" na função "CheckToken". você pode me ajudar a resolver isso?
Radhi
18
Referenciar a fonte de seu exemplo é uma ideia boa e educada. Neste caso, o mesmo código-fonte pode ser encontrado aqui codeproject.com/KB/cs/PDFToText.aspx
Myster
2
Tenho problemas com este código, ele retorna gobledegook composto pelas letras r e n. Usei o PDFBox no final.
Myster
Tão estranho ... Eu conectei meu pdf e tenho 1627 linhas vazias no meu arquivo de texto ...
Ortund
1
A resposta fornecida por Brock Nusser parece ser a solução mais atualizada e deve ser considerada a resposta certa para esta questão.
ceetheman
6
publicstringReadPdfFile(objectFilename,DataTableReadLibray){PdfReader reader2 =newPdfReader((string)Filename);string strText =string.Empty;for(int page =1; page <= reader2.NumberOfPages; page++){ITextExtractionStrategy its =new iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy();PdfReader reader =newPdfReader((string)Filename);String s =PdfTextExtractor.GetTextFromPage(reader, page, its);
s =Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default,Encoding.UTF8,Encoding.Default.GetBytes(s)));
strText = strText + s;
reader.Close();}return strText;}
Essa não é uma porta oficial e o link está quebrado de qualquer maneira. A porta .NET oficial do iText, iTextSharp, pode ser encontrada no GitHub: github.com/itext/itextsharp
Além disso: "No momento, a libHaru não oferece suporte à leitura e edição de arquivos PDF existentes e é improvável que esse suporte apareça." Isso é realmente relevante?
TernaryTopiary
0
Dê uma olhada na biblioteca Docotic.Pdf . Não requer que você abra o código-fonte de seu aplicativo (como o iTextSharp com licença viral AGPL 3, por exemplo).
Docotic.Pdf pode ser usado para ler arquivos PDF e extrair texto com ou sem formatação. Por favor, dê uma olhada no artigo que mostra como extrair texto de PDFs .
Isenção de responsabilidade: eu trabalho para a Bit Miracle, fornecedora da biblioteca.
Respostas:
Desde que esta pergunta foi respondida pela última vez em 2008, o iTextSharp melhorou sua API dramaticamente. Se você baixar a versão mais recente de seu api em http://sourceforge.net/projects/itextsharp/ , você pode usar o seguinte trecho de código para extrair todo o texto de um pdf em uma string.
fonte
PdfTextExtractor
pois ela entrará em conflito com a deiTextSharp.text.pdf.parser
O iTextSharp é a melhor aposta. Usei para fazer uma aranha para lucene.Net para que pudesse rastrear PDF.
fonte
fonte
PDFClown pode ajudar, mas eu não o recomendaria para um aplicativo grande ou de uso pesado.
fonte
iText é a melhor biblioteca que conheço. Originalmente escrito em Java, também existe uma porta .NET.
Veja http://www.ujihara.jp/iTextdotNET/en/
fonte
Você poderia dar uma olhada nisso: http://www.codeproject.com/KB/showcase/pdfrasterizer.aspx Não é totalmente gratuito, mas parece muito bom.
Alex
fonte
http://www.c-sharpcorner.com/UploadFile/psingh/PDFFileGenerator12062005235236PM/PDFFileGenerator.aspx é um código aberto e pode ser um bom ponto de partida para você.
fonte
aspose pdf funciona muito bem. então, novamente, você tem que pagar por isso
fonte
itext?
http://www.itextpdf.com/terms-of-use/index.php
Guia
http://www.vogella.com/articles/JavaPDF/article.html
fonte
Há também LibHaru
http://libharu.org/wiki/Main_Page
fonte
Dê uma olhada na biblioteca Docotic.Pdf . Não requer que você abra o código-fonte de seu aplicativo (como o iTextSharp com licença viral AGPL 3, por exemplo).
Docotic.Pdf pode ser usado para ler arquivos PDF e extrair texto com ou sem formatação. Por favor, dê uma olhada no artigo que mostra como extrair texto de PDFs .
Isenção de responsabilidade: eu trabalho para a Bit Miracle, fornecedora da biblioteca.
fonte