private void AddFonts(IXpsFixedPageReader fixedPageReader, IXpsFixedPageWriter pageWriter) { // Adding font from source to resources. foreach (XpsFont font in fixedPageReader.Fonts) { if (!CheckIfFontAddedAlready(font.Uri.ToString())) { XpsFont newFont = pageWriter.AddFont(false); using (Stream dstFontStream = newFont.GetStream()) { using (Stream srcFontStream = font.GetStream()) { if (font.IsObfuscated) { WriteObfuscatedStream(font.Uri.ToString(), dstFontStream, srcFontStream); } else { WriteToStream(dstFontStream, srcFontStream); } newFont.Commit(); XpsDetails xpsFont = new XpsDetails(); xpsFont.resource = newFont; xpsFont.sourceURI = font.Uri; xpsFont.destURI = newFont.Uri; xpsFonts.Add(xpsFont); } } } } }
// Test public static string ExtractText(string path) { XpsDocument _xpsDocument = new XpsDocument(path, System.IO.FileAccess.Read); IXpsFixedDocumentSequenceReader fixedDocSeqReader = _xpsDocument.FixedDocumentSequenceReader; IXpsFixedDocumentReader _document = fixedDocSeqReader.FixedDocuments[0]; IXpsFixedPageReader _page = _document.FixedPages[0]; StringBuilder _currentText = new StringBuilder(); System.Xml.XmlReader _pageContentReader = _page.XmlReader; if (_pageContentReader != null) { while (_pageContentReader.Read()) { if (_pageContentReader.Name == "Glyphs") { if (_pageContentReader.HasAttributes) { if (_pageContentReader.GetAttribute("UnicodeString") != null) { _currentText. Append(_pageContentReader. GetAttribute("UnicodeString") + "\n"); } } } } } return(_currentText.ToString()); }
public string extracttext() { IXpsFixedDocumentSequenceReader fixedDocSeqReader = newxpsdocument.FixedDocumentSequenceReader; IXpsFixedDocumentReader _document = fixedDocSeqReader.FixedDocuments[0]; // IXpsFixedPageReader _page = _document.FixedPages[documentViewerElement.MasterPageNumber]; string _fullPageText = ""; for (int pagenumber = 0; pagenumber < _document.FixedPages.Count(); pagenumber++) { IXpsFixedPageReader _page = _document.FixedPages[pagenumber]; StringBuilder _currentText = new StringBuilder(); System.Xml.XmlReader _pageContentReader = _page.XmlReader; if (_pageContentReader != null) { while (_pageContentReader.Read()) { if (_pageContentReader.Name == "Glyphs") { if (_pageContentReader.HasAttributes) { if (_pageContentReader.GetAttribute("UnicodeString") != null) { _currentText. Append(_pageContentReader. GetAttribute("UnicodeString")); } } } } } _fullPageText = _fullPageText + _currentText.ToString(); } return(_fullPageText); }
private void AddContent(IXpsFixedPageReader fixedPageReader, IXpsFixedPageWriter pageWriter) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(fixedPageReader.XmlReader); EditXPSContent(xmlDoc.ChildNodes); xmlDoc.Save(pageWriter.XmlWriter); }
/// <summary> /// Add images from source to new XPS. /// </summary> /// <param name="fixedPageReader"></param> /// <param name="pageWriter"></param> private void AddImages( IXpsFixedPageReader fixedPageReader, IXpsFixedPageWriter pageWriter) { // Adding images to resources. foreach (XpsImage image in fixedPageReader.Images) { XpsImage newImage = null; // Getting the URI to check the image extension. string sourceExt = image.Uri.ToString().ToLower(); if (sourceExt.Contains(ImageType.PNG)) { newImage = pageWriter.AddImage(XpsImageType.PngImageType); } else if (sourceExt.Contains(ImageType.JPG) || sourceExt.Contains(ImageType.JPEG)) { newImage = pageWriter.AddImage(XpsImageType.JpegImageType); } else if (sourceExt.Contains(ImageType.TIF) || sourceExt.Contains(ImageType.TIFF)) { newImage = pageWriter.AddImage(XpsImageType.TiffImageType); } else if (sourceExt.Contains(ImageType.WDP)) { newImage = pageWriter.AddImage(XpsImageType.WdpImageType); } else { newImage = null; } if (null != newImage) { using (Stream dstImageStream = newImage.GetStream()) { using (Stream srcImageStream = image.GetStream()) { CopyStream(srcImageStream, dstImageStream); newImage.Commit(); XpsDetails xpsImage = new XpsDetails(); xpsImage.resource = newImage; xpsImage.sourceURI = image.Uri; xpsImage.destURI = newImage.Uri; xpsImages.Add(xpsImage); } } } } }
/// <summary> /// Add content from source to new XPS. /// </summary> /// <param name="fixedPageReader"></param> /// <param name="pageWriter"></param> private void AddContent( IXpsFixedPageReader fixedPageReader, IXpsFixedPageWriter pageWriter) { XmlDocument xmlDoc = new XmlDocument(); // Loading XPS content. xmlDoc.Load(fixedPageReader.XmlReader); // Find and replace text to edit the XPS. EditXPSContent(xmlDoc.ChildNodes); // Writing the modified XML content to a new XPS doc. xmlDoc.Save(pageWriter.XmlWriter); }
GetFixedPage( Uri pageUri ) { UpdatePageCache(); IXpsFixedPageReader pageReader = null; foreach (IXpsFixedPageReader reader in _pageCache) { if (reader.Uri == pageUri) { pageReader = reader; } } return(pageReader); }
public ParsedData parseData(string filename) { /* * NAME (last, first) CHAR DOE, JOHN * DOB NUM MM/DD/YYYY * MRN CHAR NNNNNNN * StudyID NUM AlphaNumeric * SEX CHAR M/F * RACE CHAR WHITE, BLACK, ASIAN, NATIVE AMERICAN, PACIFIC ISLANDER, BIRACIAL, etc * ETHNICITY CHAR HISPANIC, NOT HISPANIC, MIDDLE EASTERN * ADMISSION DATE NUM MM/DD/YYYY * DISCHARGE DATE NUM MM/DD/YYYY * HOSPITAL LOCATION NUM SR AFLAC IP, EG 3-E (AFLAC), EG AFLAC BMT, SR PEDIATRIC ICU, EG PEDIATRIC ICU * PRIMARY ONC DIAGNOSIS CHAR SPECIFIC DISEASE * DATE OF PRIMARY ONC DIAGNOSIS NUM MM/DD/YYYY * SECONDARY ONC DIAGNOSIS CHAR SPECIFIC DISEASE * DATE OF SECONDARY ONC DIAGNOSIS NUM MM/DD/YYYY * RELAPSE CHAR Y/N * DATE OF RELAPSE NUM MM/DD/YYYY * BMT CHAR Y/N * BMT DATE NUM MM/DD/YYYY * BMT TYPE CHAR ALLO/AUTO * LINE INSERTION DATE NUM MM/DD/YYYY * LINE REMOVAL DATE NUM MM/DD/YYYY * LINE TYPE CHAR DLCVL, PORT, DLPORT, PICC * HAS SECONDARY LINE CHAR Y/N * SECONDARY LINE TYPE CHAR DLCVL, PORT, DLPORT, PICC * BLOOD CULTURE ORDERED CHAR Y/N * POSITIVE BLOOD CULTURE CHAR Y/N * ORGANISM PRESENT IN BLOOD CULTURE CHAR GENUS SPECIES * DATE OF POS BLOOD CULTURE NUM MM/DD/YYYY * CLABSI CHAR Y/N * TOTAL NUMBER CLABSI DURING TIME INTERVAL NUM 0-N * WBC COUNT AT POS BCX DX NUM 0-NNN,NNN * ANC AT POS BCX DX NUM 0-NNN,NNN * LINE ENTRIES IN INTERVAL NUM 0-N * LINE ENTRIES LAST 24 HRS NUM 0-N * NUMBER MOUTH CARE IN INTERVAL NUM 0-N * NUMBER MOUTH CARE 72 HRS NUM 0-N * MOUTHCARE TYPE CHAR BRUSH, RINSE * RINSE AGENT CHAR BIOTENE, PERIDEX * NUMBER CHG BATHS IN INTERVAL NUM 0-N * CHG BATHS 72 HRS BEFORE POSITIVE BCX NUM 0-N * PREOP CHG BATH CHAR Y/N * ROUTINE BATH CHAR Y/N * OTHER EXTERNAL LINE/DRAIN PRESENT CHAR GT, GJT, CT, JPDRAIN, WOUNDVAC, FOLEY, NEPHROSTOMY, TRACH * LAST DRESSING CHANGE DATE NUM MM/DD/YYYY * DATES OF DRESSING CHANGES NUM MM/DD/YYYY * FREQUENCY DRESSING CHANGE (DAYS) NUM 0-NN * TOTAL DRESSING CHANGES IN INTERVAL NUM 0-N * LAST TUBING CHANGE DATE NUM MM/DD/YYYY * FREQUENCY TUBING CHANGE (DAYS) NUM 0-NN * LAST CAP CHANGE DATE NUM MM/DD/YYYY * FREQUENCY CAP CHANGE (DAYS) NUM 0-NN * TOTAL CAP CHANGES NUM 0-N * HIGH TOUCH SURFACE CLEAN PROTOCOL CHAR Y/N * DAILY LINEN CHANGE CHAR Y/N */ XpsDocument _xpsDocument = new XpsDocument(filename, System.IO.FileAccess.Read); IXpsFixedDocumentSequenceReader fixedDocSeqReader = _xpsDocument.FixedDocumentSequenceReader; IXpsFixedDocumentReader _document = fixedDocSeqReader.FixedDocuments[0]; IXpsFixedPageReader _page = _document.FixedPages[0]; StringBuilder _currentText = new StringBuilder(); System.Xml.XmlReader _pageContentReader = _page.XmlReader; if (_pageContentReader != null) { while (_pageContentReader.Read()) { if (_pageContentReader.Name == "Glyphs") { if (_pageContentReader.HasAttributes) { if (_pageContentReader.GetAttribute("UnicodeString") != null) { _currentText.Append(" "); _currentText. Append(_pageContentReader. GetAttribute("UnicodeString")); } } } } } string _fullPageText = _currentText.ToString(); // MessageBox.Show(_fullPageText); // return new ParsedData() { Name = filename }; return(fakeparse(filename)); }
static void ReadResources(IXpsFixedPageReader reader, WMFImage wmf) { if (wmf.Canvas == null) return; foreach (var glyph in wmf.Canvas.FindVisualChildren<Glyphs>()) { var guid = new Guid(Path.GetFileNameWithoutExtension(glyph.FontUri.ToString())); if (!wmf.Resources.ContainsKey(guid)) { var data = DeobfuscateFont(reader.GetFont(glyph.FontUri)); wmf.Resources.Add(guid, data); } } }