예제 #1
0
        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);
                        }
                    }
                }
            }
        }
예제 #2
0
        // 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());
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #7
0
        GetFixedPage(
            Uri pageUri
            )
        {
            UpdatePageCache();
            IXpsFixedPageReader pageReader = null;

            foreach (IXpsFixedPageReader reader in _pageCache)
            {
                if (reader.Uri == pageUri)
                {
                    pageReader = reader;
                }
            }

            return(pageReader);
        }
예제 #8
0
        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));
        }
예제 #9
0
		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);
				}
			}
		}