Feedback

C# - GetPDFContentString

Veröffentlicht von am 08.04.2009
(1 Bewertungen)
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.
GFU-Schulungen  [Anzeige]

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

VB.NET 2017/2015/2013 Komplett

Ziel des Seminars ist der flexible Umgang mit VB.NET, wie z.B. die damit verbundene eigenständige Entwicklung von Programmen oder das Verwenden von Datenbanken.

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();
}
Abgelegt unter iTextSharp, PDF, Content.

1 Kommentare zum Snippet

Ruedi schrieb am 15.05.2012:
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();
}
 

Logge dich ein, um hier zu kommentieren!