Codecs: How to extract text from Email file?
In This Topic
Here is C#/VB.NET code that shows how to extract text from Email file:
/// <summary>
/// Extracts the text from Email (.msg, .eml) document.
/// </summary>
/// <param name="emailFileName">Name of the Email file.</param>
public static void ExtractTextFromEmail(string emailFileName)
{
using (Vintasoft.Imaging.ImageCollection images = new Vintasoft.Imaging.ImageCollection())
{
// open Email document
images.Add(emailFileName);
try
{
// page number
int pageNumber = 1;
// for each page of HTML dcoument
foreach (Vintasoft.Imaging.VintasoftImage image in images)
{
// write page number
System.Console.WriteLine("\tPage Number: {0}", pageNumber++);
System.Console.WriteLine();
System.Console.WriteLine();
// find text region metadata
Vintasoft.Imaging.Metadata.TextRegionMetadata textRegionMetadata =
image.Metadata.MetadataTree.FindChildNode<Vintasoft.Imaging.Metadata.TextRegionMetadata>();
// if current page has text content
if (textRegionMetadata != null)
{
// get text region
Vintasoft.Imaging.Text.TextRegion textRegion = textRegionMetadata.GetTextRegion();
// write page text content
System.Console.Write(textRegion.TextContent);
}
// if page separator must be added between pages
if (pageNumber < images.Count)
{
System.Console.WriteLine();
System.Console.WriteLine();
System.Console.WriteLine();
}
}
}
finally
{
// clear and dispose images
images.ClearAndDisposeItems();
}
}
}
''' <summary>
''' Extracts the text from Email (.msg, .eml) document.
''' </summary>
''' <param name="emailFileName">Name of the Email file.</param>
Public Shared Sub ExtractTextFromEmail(emailFileName As String)
Using images As New Vintasoft.Imaging.ImageCollection()
' open Email document
images.Add(emailFileName)
Try
' page number
Dim pageNumber As Integer = 1
' for each page of HTML dcoument
For Each image As Vintasoft.Imaging.VintasoftImage In images
' write page number
System.Console.WriteLine(vbTab & "Page Number: {0}", System.Math.Max(System.Threading.Interlocked.Increment(pageNumber),pageNumber - 1))
System.Console.WriteLine()
System.Console.WriteLine()
' find text region metadata
Dim textRegionMetadata As Vintasoft.Imaging.Metadata.TextRegionMetadata = image.Metadata.MetadataTree.FindChildNode(Of Vintasoft.Imaging.Metadata.TextRegionMetadata)()
' if current page has text content
If textRegionMetadata IsNot Nothing Then
' get text region
Dim textRegion As Vintasoft.Imaging.Text.TextRegion = textRegionMetadata.GetTextRegion()
' write page text content
System.Console.Write(textRegion.TextContent)
End If
' if page separator must be added between pages
If pageNumber < images.Count Then
System.Console.WriteLine()
System.Console.WriteLine()
System.Console.WriteLine()
End If
Next
Finally
' clear and dispose images
images.ClearAndDisposeItems()
End Try
End Using
End Sub