private void AddMetadata(PdfMetadata pdfMetadata) { PdfMetadata = pdfMetadata; pdfMetadata.UpdateObjectNumber(ObjectNumber); PdfObjects.Add(pdfMetadata); ObjectNumber++; }
/// <summary> /// Removes custom property of Pdf file and creates output file /// </summary> public static void RemoveCustomProperties() { try { //ExStart:RemoveCustomDocumentPropertiesPdfFormat // initialize PdfFormat PdfFormat pdfFormat = new PdfFormat(Common.MapSourceFilePath(filePath)); // initialize PdfMetadata PdfMetadata metadata = pdfFormat.DocumentProperties; string propertyName = "New Custom Property"; // check if property is not built-in if (!metadata.IsBuiltIn(propertyName)) { // remove property metadata.Remove(propertyName); } else { Console.WriteLine("Can not remove built-in property."); } // save file in destination folder pdfFormat.Save(Common.MapDestinationFilePath(filePath)); //ExEnd:RemoveCustomDocumentPropertiesPdfFormat Console.WriteLine("File saved in destination folder."); } catch (Exception exp) { Console.WriteLine(exp.Message); } }
/// <summary> /// Gets custom properties of Pdf file /// </summary> public static void GetCustomProperties() { try { //ExStart:GetCustomDocumentPropertiesPdfFormat // initialize Pdfformat PdfFormat pdfFormat = new PdfFormat(Common.MapSourceFilePath(filePath)); // initialize PdfMetadata PdfMetadata pdfMetadata = pdfFormat.DocumentProperties; Console.WriteLine("\nCustom Properties"); foreach (KeyValuePair <string, PropertyValue> keyValuePair in pdfMetadata) { // check if property is not built-in if (!pdfMetadata.IsBuiltIn(keyValuePair.Key)) { // get property value PropertyValue propertyValue = pdfMetadata[keyValuePair.Key]; Console.WriteLine("Key: {0}, Type:{1}, Value: {2}", keyValuePair.Key, propertyValue.Type, propertyValue); } } //ExEnd:GetCustomDocumentPropertiesPdfFormat } catch (Exception exp) { Console.WriteLine(exp.Message); } }
/// <summary> /// Adds custom property in Pdf file and creates output file /// </summary> public static void AddCustomProperty() { try { //ExStart:AddCustomDocumentPropertyPdfFormat // initialize PdfFormat PdfFormat pdfFormat = new PdfFormat(Common.MapSourceFilePath(filePath)); // initialize PdfMetadata PdfMetadata metadata = pdfFormat.DocumentProperties; string propertyName = "New Custom Property"; string propertyValue = "123"; // check if property already exists if (!metadata.ContainsKey(propertyName)) { // add property metadata.Add(propertyName, propertyValue); } // save file in destination folder pdfFormat.Save(Common.MapDestinationFilePath(filePath)); //ExEnd:AddCustomDocumentPropertyPdfFormat Console.WriteLine("File saved in destination folder."); } catch (Exception exp) { Console.WriteLine(exp.Message); } }
/// <summary> /// Updates document properties of Pdf file and creates output file /// </summary> public static void UpdateDocumentProperties() { try { //ExStart:UpdateBuiltinDocumentPropertyPdfFormat // initialize PdfFormat PdfFormat pdfFormat = new PdfFormat(Common.MapSourceFilePath(filePath)); // initialize PdfMetadata PdfMetadata pdfMetadata = pdfFormat.DocumentProperties; //update document property... pdfMetadata.Author = "New author"; pdfMetadata.Subject = "New subject"; pdfMetadata.CreatedDate = DateTime.Now; //save output file... pdfFormat.Save(Common.MapDestinationFilePath(filePath)); //ExEnd:UpdateBuiltinDocumentPropertyPdfFormat Console.WriteLine("File saved in destination folder."); } catch (Exception exp) { Console.WriteLine(exp.Message); } }
//ExEnd:SourcePdfFilePath #region working with builtin document properties /// <summary> /// Gets builtin document properties of Pdf file /// </summary> public static void GetDocumentProperties() { try { //ExStart:GetBuiltinDocumentPropertyPdfFormat // initialize Pdfformat PdfFormat pdfFormat = new PdfFormat(Common.MapSourceFilePath(filePath)); // initialize PdfMetadata PdfMetadata pdfMetadata = pdfFormat.DocumentProperties; // built-in properties Console.WriteLine("Built-in Properties"); foreach (KeyValuePair <string, PropertyValue> property in pdfMetadata) { // check if built-in property if (pdfMetadata.IsBuiltIn(property.Key)) { Console.WriteLine("{0} : {1}", property.Key, property.Value); } } //ExEnd:GetBuiltinDocumentPropertyPdfFormat } catch (Exception exp) { Console.WriteLine(exp.Message); } }
private static List <BoundingBox> ConvertWord2BoundingBox(PdfMetadata word) { List <BoundingBox> list = new List <BoundingBox>(); list.Add(new BoundingBox { X = word.X, Y = word.Y, Height = word.Height, Width = word.Width }); return(list); }
public Pdf( MediaBox mediaBox = null, string version = "1.7", PageLayout pageLayout = PageLayout.OneColumn, PdfMetadata pdfMetadata = null) { Version = version; Pages = new PdfPages(ObjectNumber); // Move to function PdfObjects.Add(Pages); ObjectNumber++; Catalog = new PdfCatalog(ObjectNumber, this.Pages, pageLayout); // Move to function PdfObjects.Add(Catalog); ObjectNumber++; this.AddPage(mediaBox); }
public static void Create() { var metadata = new PdfMetadata( "Title", "Author", "Subject", "Keywords, One, Two", "Creator", DateTime.Now, DateTime.Now); var mediaBox = new MediaBox(0, 0, 200, 200); Pdf pdf = new Pdf(mediaBox, pdfMetadata: metadata); pdf.AddText("Hello World!", 10, 50); pdf.SaveFile(nameof(MetadataExample)); }
private List <PdfMetadata> ConvertTextLineToMetadata(IList <TextLine2> list) { List <PdfMetadata> metadataList = new List <PdfMetadata>(); foreach (var item in list) { var metadataItem = new PdfMetadata { Text = item.GetText(), X = item.GetX(), Y = item.GetH(), Width = item.GetWidth(), Height = item.GetHeight(), page = item.PageInfo.PageNumber }; metadataList.Add(metadataItem); } return(metadataList); }
//ExEnd:ApplyLicense public static string CleanFile(string filePath) { try { try { //Apply license... ApplyLicense(); } catch (Exception exp) { MessageBox.Show("In Licence: " + exp.Message); } try { //Recognize format of file... FormatBase format = FormatFactory.RecognizeFormat(filePath); if (format.Type.ToString().ToLower() == "doc" || format.Type.ToString().ToLower() == "docx") { // initialize DocFormat... DocFormat docFormat = format as DocFormat; if (docFormat != null) { // get document properties... DocMetadata properties = new DocMetadata(); properties = docFormat.DocumentProperties; //Remove custom properties... foreach (KeyValuePair <string, PropertyValue> keyValuePair in properties) { if (!properties.IsBuiltIn(keyValuePair.Key)) { properties.Remove(keyValuePair.Key); } } //Reset built-in properties... properties.Author = ""; properties.Category = ""; properties.Comments = ""; properties.Company = ""; properties.ContentStatus = ""; properties.HyperlinkBase = ""; properties.Keywords = ""; properties.Manager = ""; properties.Title = ""; //Update metadata if file... MetadataUtility.UpdateMetadata(filePath, properties); } return("1"); } else if (format.Type.ToString().ToLower() == "xls" || format.Type.ToString().ToLower() == "xlsx") { //Initialize XlsFormat... XlsFormat xlsFormat = format as XlsFormat; if (xlsFormat != null) { //Get document properties... XlsMetadata properties = xlsFormat.DocumentProperties; //Remove custom properties... foreach (KeyValuePair <string, PropertyValue> keyValuePair in properties) { if (!properties.IsBuiltIn(keyValuePair.Key)) { properties.Remove(keyValuePair.Key); } } //Reset built-in properties... properties.Author = ""; properties.Category = ""; properties.Comments = ""; properties.Company = ""; properties.HyperlinkBase = ""; properties.Keywords = ""; properties.Manager = ""; properties.Title = ""; properties.Subject = ""; //Update metadata in files... MetadataUtility.UpdateMetadata(filePath, properties); } return("1"); } else if (format.Type.ToString().ToLower() == "ppt" || format.Type.ToString().ToLower() == "pptx") { //Initialize PptFormat... PptFormat pptFormat = format as PptFormat; if (pptFormat != null) { //Get document properties... PptMetadata properties = pptFormat.DocumentProperties; //Remove custom properties foreach (KeyValuePair <string, PropertyValue> keyValuePair in properties) { if (!properties.IsBuiltIn(keyValuePair.Key)) { properties.Remove(keyValuePair.Key); } } //Reset built-in properties... properties.Author = ""; properties.Category = ""; properties.Comments = ""; properties.Company = ""; properties.Keywords = ""; properties.Manager = ""; properties.Title = ""; properties.Subject = ""; //Update metadata of file... MetadataUtility.UpdateMetadata(filePath, properties); } return("1"); } else if (format.Type.ToString().ToLower() == "pdf") { // initialize PdfFormat... PdfFormat pdfFormat = format as PdfFormat; if (pdfFormat != null) { // get document properties... PdfMetadata properties = pdfFormat.DocumentProperties; // Remove custom properties... foreach (KeyValuePair <string, PropertyValue> keyValuePair in properties) { if (!properties.IsBuiltIn(keyValuePair.Key)) { properties.Remove(keyValuePair.Key); } } //Reset built-in properties... properties.Author = ""; properties.CreatedDate = DateTime.MinValue; properties.Keywords = ""; properties.ModifiedDate = DateTime.MinValue; properties.Subject = ""; properties.TrappedFlag = false; properties.Title = ""; //Update metadata of file... MetadataUtility.UpdateMetadata(filePath, properties); } return("1"); } else if (format.Type.ToString().ToLower() == "jpeg" || format.Type.ToString().ToLower() == "jpg") { //Get EXIF data if exists ExifMetadata exifMetadata = (ExifMetadata)MetadataUtility.ExtractSpecificMetadata(filePath, MetadataType.EXIF); //Get XMP data if exists XmpMetadata xmpMetadata = (XmpMetadata)MetadataUtility.ExtractSpecificMetadata(filePath, MetadataType.XMP); if (exifMetadata != null) { //Remove exif info... ExifInfo exifInfo = exifMetadata.Data; if (exifInfo.GPSData != null) { // set altitude, latitude and longitude to null values exifInfo.GPSData.Altitude = null; exifInfo.GPSData.Latitude = null; exifInfo.GPSData.LatitudeRef = null; exifInfo.GPSData.Longitude = null; exifInfo.GPSData.LongitudeRef = null; } exifInfo.BodySerialNumber = ""; exifInfo.CameraOwnerName = ""; exifInfo.CFAPattern = new byte[] { 0 }; } else { exifMetadata = new ExifMetadata(); } try { //Remove XMP data... XmpPacketWrapper xmpPacket = xmpMetadata.XmpPacket; if (xmpPacket != null) { if (xmpPacket.ContainsPackage(Namespaces.DublinCore)) { // if not - add DublinCore schema xmpPacket.AddPackage(new DublinCorePackage()); DublinCorePackage dublinCorePackage = (DublinCorePackage)xmpPacket.GetPackage(Namespaces.DublinCore); dublinCorePackage.Clear(); xmpMetadata.XmpPacket = xmpPacket; } } } catch { } //Update Exif info... try { MetadataUtility.UpdateMetadata(filePath, exifMetadata); } catch { } //Update XMP data... try { MetadataUtility.UpdateMetadata(filePath, xmpMetadata); } catch { } //Remove custom metadata if any... MetadataUtility.CleanMetadata(filePath); return("1"); } else if (format.Type.ToString().ToLower() == "png") { //Get XMP data... XmpMetadata xmpMetadata = (XmpMetadata)MetadataUtility.ExtractSpecificMetadata(filePath, MetadataType.XMP); try { //Remove XMP metadata... XmpPacketWrapper xmpPacket = xmpMetadata.XmpPacket; if (xmpPacket != null) { if (xmpPacket.ContainsPackage(Namespaces.DublinCore)) { // if not - add DublinCore schema xmpPacket.AddPackage(new DublinCorePackage()); DublinCorePackage dublinCorePackage = (DublinCorePackage)xmpPacket.GetPackage(Namespaces.DublinCore); dublinCorePackage.Clear(); xmpMetadata.XmpPacket = xmpPacket; //Update XMP metadata in file... MetadataUtility.UpdateMetadata(filePath, xmpMetadata); //Clean custom metadata if any... MetadataUtility.CleanMetadata(filePath); } } } catch { } return("1"); } else if (format.Type.ToString().ToLower() == "gif") { //Initialie GifFormat... GifFormat gifFormat = new GifFormat(filePath); //Check if Xmp supported... if (gifFormat.IsSupportedXmp) { //Get XMP data... XmpMetadata xmpMetadata = (XmpMetadata)MetadataUtility.ExtractSpecificMetadata(filePath, MetadataType.XMP); try { XmpPacketWrapper xmpPacket = xmpMetadata.XmpPacket; if (xmpPacket != null) { if (xmpPacket.ContainsPackage(Namespaces.DublinCore)) { // if not - add DublinCore schema xmpPacket.AddPackage(new DublinCorePackage()); DublinCorePackage dublinCorePackage = (DublinCorePackage)xmpPacket.GetPackage(Namespaces.DublinCore); dublinCorePackage.Clear(); xmpMetadata.XmpPacket = xmpPacket; //Update Xmp data in file... MetadataUtility.UpdateMetadata(filePath, xmpMetadata); //Clean custom metadata if any... MetadataUtility.CleanMetadata(filePath); } } } catch { } } return("1"); } else { return("Format not supported."); } } catch (Exception exp) { MessageBox.Show("Exception: " + exp.Message); return(exp.Message); } } catch (Exception exp) { return(exp.Message); } }