Hereby a little code we use , because we have a lot of code that aspose use in our Application .
public class FilePropertyInfoPdf : FilePropertyInfo
{
public FilePropertyInfoPdf(UploadFileStream uploadFileStream, String fullPath)
: base(uploadFileStream, fullPath)
{
if (String.IsNullOrEmpty(fullPath))
throw new ArgumentNullException(“fullPath”, String.Format(Exceptions.ParameterIsNullOrEmpty, “FullPath”));
if (!File.Exists(fullPath))
throw new FileNotFoundException(String.Format(Exceptions.FileNotFound, fullPath), fullPath);
this.m_license = new Aspose.Pdf.Kit.License();
this.m_license.SetLicense(Configurations.AsposeLicenseFile);
this.m_document = new Aspose.Pdf.Kit.PdfFileInfo(fullPath);
this.m_fullPath = fullPath;
}
private String m_fullPath;
private Aspose.Pdf.Kit.License m_license;
private Aspose.Pdf.Kit.PdfFileInfo m_document;
public override String Author
{
get { return this.m_document.Author; }
}
public override String Category
{
get { return String.Empty; }
}
public override String Comments
{
get { return String.Empty; }
}
public override String Company
{
get { return String.Empty; }
}
public override String Content
{
get
{
try
{
return ExtractContent(this.m_fullPath);
}
catch (Exception ex)
{
TraceHelper.WriteException(ex);
return String.Empty;
}
}
}
public static string ExtractContent(string filePath)
{
Aspose.Pdf.Kit.PdfExtractor pdfExtractor = new Aspose.Pdf.Kit.PdfExtractor();
pdfExtractor.BindPdf(filePath);
pdfExtractor.ExtractText();
pdfExtractor.GetText(filePath + “.sdx”);
//We must use encoding, otherwise chars like ä, é … will not be visualized correctly: string content = File.ReadAllText(filePath + “.sdx”);
string content = File.ReadAllText(filePath + “.sdx”, System.Text.Encoding.Default);
File.Delete(filePath + “.sdx”);
return content;
}
public override String Keywords
{
get { return this.m_document.Keywords; }
}
public override String LastSavedBy
{
get { return String.Empty; }
}
public override String Manager
{
get { return String.Empty; }
}
public override String Subject
{
get { return this.m_document.Subject; }
}
public override String Title
{
get { return this.m_document.Title; }
}
public override IDictionary<String, String> UserDefinedProperties
{
get
{
Dictionary<String, String> userDefinedProperties = new Dictionary<String, String>();
return userDefinedProperties;
}
}
public override DateTime UtcContent
{
get
{
if (String.IsNullOrEmpty(this.m_document.CreationDate))
return DateTime.MaxValue;
if (this.m_document.CreationDate.Length >= 16)
{
DateTime result = DateTime.MaxValue;
DateTime.TryParseExact(this.m_document.CreationDate.Substring(0, 16), “D:yyyyMMddHHmmss”, CultureInfo.InvariantCulture, DateTimeStyles.None, out result);
return result;
}
else
return DateTime.MaxValue;
}
}
public override DateTime UtcLastPrinted
{
get { return DateTime.MaxValue; }
}
public override DateTime UtcLastSaved
{
get
{
if (String.IsNullOrEmpty(this.m_document.ModDate))
return DateTime.MaxValue;
if (this.m_document.ModDate.Length >= 16)
return DateTime.ParseExact(this.m_document.ModDate.Substring(0, 16), “D:yyyyMMddHHmmss”, CultureInfo.InvariantCulture);
else
return DateTime.MaxValue;
}
}
}
public class FilePropertyInfoUnknown : FilePropertyInfo
{
public FilePropertyInfoUnknown(UploadFileStream uploadFileStream, String fullPath)
: base(uploadFileStream, fullPath)
{
if (String.IsNullOrEmpty(fullPath))
throw new ArgumentNullException(“fullPath”, String.Format(Exceptions.ParameterIsNullOrEmpty, “FullPath”));
if (!File.Exists(fullPath))
throw new FileNotFoundException(String.Format(Exceptions.FileNotFound, fullPath), fullPath);
m_fullPath = fullPath;
}
private string m_fullPath;
public override String Author
{
get { return String.Empty; }
}
public override String Category
{
get { return String.Empty; }
}
public override String Comments
{
get { return String.Empty; }
}
public override String Company
{
get { return String.Empty; }
}
public override String Content
{
get { return ExtractContent(this.m_fullPath); }
}
public static string ExtractContent(string filePath)
{
String content = “”;
return content;
}
public override String Keywords
{
get { return String.Empty; }
}
public override String LastSavedBy
{
get { return String.Empty; }
}
public override String Manager
{
get { return String.Empty; }
}
public override String Subject
{
get { return String.Empty; }
}
public override String Title
{
get { return String.Empty; }
}
public override IDictionary<String, String> UserDefinedProperties
{
get { return null; }
}
public override DateTime UtcContent
{
get { return DateTime.MaxValue; }
}
public override DateTime UtcLastPrinted
{
get { return DateTime.MaxValue; }
}
public override DateTime UtcLastSaved
{
get { return DateTime.MaxValue; }
}
}
public class FilePropertyInfoOutlook : FilePropertyInfo
{
public FilePropertyInfoOutlook(UploadFileStream uploadFileStream, String fullPath)
: base(uploadFileStream, fullPath)
{
if (String.IsNullOrEmpty(fullPath))
throw new ArgumentNullException(“fullPath”, String.Format(Exceptions.ParameterIsNullOrEmpty, “FullPath”));
if (!File.Exists(fullPath))
throw new FileNotFoundException(String.Format(Exceptions.FileNotFound, fullPath), fullPath);
this.m_license = new Aspose.Network.License();
this.m_license.SetLicense(Configurations.AsposeLicenseFile);
this.m_message = Aspose.Network.Outlook.MapiMessage.FromFile(fullPath);
this.m_fullPath = fullPath;
}
private string m_fullPath;
private Aspose.Network.License m_license;
private Aspose.Network.Outlook.MapiMessage m_message;
public override String Author
{
get { return this.m_message.SenderName; }
}
public override String Category
{
get { return String.Empty; }
}
public override String Comments
{
get { return this.m_message.InternetMessageId; } // DO NOT ALTER THIS, as this is used for check on double values
}
public override String Company
{
get { return String.Empty; }
}
public override String Content
{
get
{
return this.m_message.Body;
}
}
public static string ExtractContent(string filePath)
{
String content = “”;
if (LicenseInfo.GetMainActivationKey().LicenseType != ApplicationType.Desktop)
{
var message = Aspose.Network.Outlook.MapiMessage.FromFile(filePath);
content = message.Body;
}
return content;
}
public override String Keywords
{
get { return String.Empty; }
}
public override String LastSavedBy
{
get { return String.Empty; }
}
public override String Manager
{
get { return String.Empty; }
}
public override String Subject
{
get { return this.m_message.Subject; }
}
public override String Title
{
get { return String.Empty; }
}
public override IDictionary<String, String> UserDefinedProperties
{
get { return null; }
}
public override DateTime UtcContent
{
get
{
Aspose.Network.Outlook.MapiProperty mailProperty = this.m_message.Properties[Aspose.Network.Outlook.MapiPropertyTag.PR_CLIENT_SUBMIT_TIME];
try
{
return mailProperty.GetDateTime();
}
catch
{
return DateTime.MinValue;
}
}
}
public override DateTime UtcLastPrinted
{
get { return DateTime.MaxValue; }
}
public override DateTime UtcLastSaved
{
get { return DateTime.MaxValue; }
}
}
}