Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1562 | Anzahl registrierter User: 1893 | Besucher online: 21
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

GetPDFContentString


Autor: Jorgen Schumann
Sprache: C#
Bewertung: 6,6
(1 Bewertung)
Anzahl der Aufrufe: 5772
  
Kick it on dotnet-kicks.de  

Beschreibung:

Es muss itextsharp.dll referenziert sein.
Kann bezogen werden von: http://itextsharp.sourceforge.net
Dann nutzt die Funktion das Objektmodell aus dem Namespace "iTextSharp.text.pdf". Deshalb bitte den Namespace importieren.

Ich verwende das Resultat der Funktion um alle eMailadressen aus einem PDF Dokument zu extrahieren. Grundlage dafür ist auch ein Sippet von Jan: http://dotnet-snippets.de/dns/alle-e-mail-adressen-aus-einem-string-bzw-text-filtern-SID759.aspx
-
Gruss aus Freiburg i.Br.


Abgelegt unter: iTextSharp, PDF, Content.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
String GetPDFContentString(String path)
{
	var sb = new StringBuilder();
	var reader = new PdfReader(path);
	{
		for (Int32 i = 1; i <= reader.NumberOfPages; i++)
		{
			PdfDictionary pdfDictionary = reader.GetPageN(i);
			PRIndirectReference objectRef;
			var PName = PdfName.CONTENTS;

			try
			{
				objectRef = pdfDictionary.Get(PName) as PRIndirectReference;
			}
			catch (Exception ex)
			{
				return ex.Message;
			}

			var stream = PdfReader.GetPdfObject(objectRef) as PRStream;
			byte[] SBytes = PdfReader.GetStreamBytes(stream);
			var token = new PRTokeniser(SBytes);
			while ((token.NextToken()))

				switch (token.TokenType)
				{
					case PRTokeniser.TK_STRING:
						sb.Append(token.StringValue);
						break;
					case PRTokeniser.TK_OTHER:
						switch (token.StringValue)
						{
							case "ET":
								sb.Append("\n");
								break;
						}
						break;
				}
			token = null;
			stream = null;
			objectRef = null;
		}
	}
	reader = null;

	return sb.ToString();
}
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Ruedi schrieb am:  15.05.2012 11:23:50

15.05.2012:
Danke für den Einstieg.

Die Library bietet inzwischen bessere Funktionen:

public string ReadPdfFile(string fileName)
{
StringBuilder text = new StringBuilder();

if (File.Exists(fileName))
{
PdfReader pdfReader = new PdfReader(fileName);

for (int page = 1; page <= pdfReader.NumberOfPages; page++)
{
ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);

currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
text.Append(currentText);
pdfReader.Close();
}
}
return text.ToString();
}


schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.