Example #1
0
        private void SignatureDefinitionCommandHandler(object sender, RoutedEventArgs e)
        {
            SignatureDefinition sigDefDialog = new SignatureDefinition();

            if (sigDefDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                XpsSignatureDefinition signatureDefinition = new XpsSignatureDefinition();
                signatureDefinition.RequestedSigner = sigDefDialog.RequestedSigner.Text;
                signatureDefinition.Intent          = sigDefDialog.Intent.Text;
                signatureDefinition.SigningLocale   = sigDefDialog.SigningLocale.Text;
                try
                {
                    signatureDefinition.SignBy = DateTime.Parse(sigDefDialog.SignBy.Text);
                }
                catch (FormatException)
                {
                }
                signatureDefinition.SpotId = Guid.NewGuid();
                IXpsFixedDocumentSequenceReader docSeq = _xpsDocument.FixedDocumentSequenceReader; //_xpsDocument is type System.Windows.Xps.Packaging.XpsDocument
                IXpsFixedDocumentReader         doc    = docSeq.FixedDocuments[0];
                doc.AddSignatureDefinition(signatureDefinition);
                doc.CommitSignatureDefinition();
                InitializeSignatureDisplay();
            }
        }
Example #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());
        }
Example #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);
        }
Example #4
0
 private void SignXPS(string inputFile)
 {
     try
     {
         Licensing.ShowDemoMessage();
         DigitalCertificate.LogOnEToken(this.DigitalSignatureCertificate);
         XpsDocument xpsDocument = new XpsDocument(inputFile, FileAccess.ReadWrite);
         if (!this.AllowMultipleSignatures)
         {
             XpsSignatureDefinition xpsSignatureDefinition = new XpsSignatureDefinition()
             {
                 Intent        = this.SigningIntent,
                 SigningLocale = this.SigningLocation,
                 SpotId        = new Guid?(Guid.NewGuid())
             };
             IXpsFixedDocumentReader item = xpsDocument.FixedDocumentSequenceReader.FixedDocuments[0];
             item.AddSignatureDefinition(xpsSignatureDefinition);
             item.CommitSignatureDefinition();
             X509Certificate2 digitalSignatureCertificate = this.DigitalSignatureCertificate;
             Guid?            spotId = xpsSignatureDefinition.SpotId;
             xpsDocument.SignDigitally(digitalSignatureCertificate, true, XpsDigSigPartAlteringRestrictions.SignatureOrigin, spotId.Value);
         }
         else
         {
             xpsDocument.SignDigitally(this.DigitalSignatureCertificate, true, XpsDigSigPartAlteringRestrictions.None);
         }
         xpsDocument.Close();
     }
     catch
     {
         throw;
     }
 }
        private static BitmapImage RandomImage(IXpsFixedDocumentReader xpsFixedDocumentReader)
        {
            var images = xpsFixedDocumentReader.FixedPages[0].Images;
            var image  = new BitmapImage();

            image.BeginInit();
            image.StreamSource = new List <XpsImage>(images)[new Random().Next(images.Count)].GetStream();
            image.EndInit();
            return(image);
        }
Example #6
0
        private static void AddStructure(IXpsFixedDocumentReader fixedDocumentReader, IXpsFixedDocumentWriter fixedDocumentWriter)
        {
            XpsStructure Structure = fixedDocumentReader.DocumentStructure;

            if (Structure != null)
            {
                XpsStructure myStructure = fixedDocumentWriter.AddDocumentStructure();
                using (Stream destStream = myStructure.GetStream())
                {
                    using (Stream sourceStream = Structure.GetStream())
                    {
                        CopyStream(sourceStream, destStream);
                        myStructure.Commit();
                    }
                }
            }
        }
        GetFixedDocument(
            Uri documentUri
            )
        {
            UpdateDocumentCache();
            IXpsFixedDocumentReader fixedDocument = null;

            //
            // Check the cache for the requested document
            //
            foreach (IXpsFixedDocumentReader reader in _documentCache)
            {
                if (documentUri == reader.Uri)
                {
                    fixedDocument = reader;
                }
            }

            return(fixedDocument);
        }
Example #8
0
 private void SignXPSStream(Stream inputStream)
 {
     try
     {
         Licensing.ShowDemoMessage();
         DigitalCertificate.LogOnEToken(this.DigitalSignatureCertificate);
         using (Package package = Package.Open(inputStream, FileMode.Open, FileAccess.ReadWrite))
         {
             string str = "memorystream://myXps.xps";
             Uri    uri = new Uri(str);
             PackageStore.AddPackage(uri, package);
             XpsDocument xpsDocument = new XpsDocument(package, CompressionOption.Maximum, str);
             if (!this.AllowMultipleSignatures)
             {
                 XpsSignatureDefinition xpsSignatureDefinition = new XpsSignatureDefinition()
                 {
                     Intent        = this.SigningIntent,
                     SigningLocale = this.SigningLocation,
                     SpotId        = new Guid?(Guid.NewGuid())
                 };
                 IXpsFixedDocumentReader item = xpsDocument.FixedDocumentSequenceReader.FixedDocuments[0];
                 item.AddSignatureDefinition(xpsSignatureDefinition);
                 item.CommitSignatureDefinition();
                 X509Certificate2 digitalSignatureCertificate = this.DigitalSignatureCertificate;
                 Guid?            spotId = xpsSignatureDefinition.SpotId;
                 xpsDocument.SignDigitally(digitalSignatureCertificate, true, XpsDigSigPartAlteringRestrictions.SignatureOrigin, spotId.Value);
             }
             else
             {
                 xpsDocument.SignDigitally(this.DigitalSignatureCertificate, true, XpsDigSigPartAlteringRestrictions.None);
             }
             PackageStore.RemovePackage(uri);
             xpsDocument.Close();
         }
     }
     catch
     {
         throw;
     }
 }
        string[] pages     = null;      // 用于存放目录文档各节点OutlineTarget值,页码信息

        // 读取导航目录
        private void ReadDoc(XpsDocument xpsDoc)
        {
            IXpsFixedDocumentSequenceReader docSeq    = xpsDoc.FixedDocumentSequenceReader;
            IXpsFixedDocumentReader         docReader = docSeq.FixedDocuments[0];
            XpsStructure xpsStructure = docReader.DocumentStructure;
            Stream       stream       = xpsStructure.GetStream();
            XmlDocument  doc          = new XmlDocument();

            doc.Load(stream);
            //获取节点列表
            XmlNodeList nodeList = doc.ChildNodes.Item(0).FirstChild.FirstChild.ChildNodes;

            if (nodeList.Count <= 0)//判断是否存在目录节点
            {
                //tvTree.Visibility = System.Windows.Visibility.Hidden;
                tvTree.Items.Add(new TreeViewItem {
                    Header = "没有导航目录"
                });
                return;
            }
            tvTree.Visibility = System.Windows.Visibility.Visible;
            array             = new int[nodeList.Count];
            array1            = new string[nodeList.Count];
            arrayName         = new string[nodeList.Count];
            pages             = new string[nodeList.Count];
            for (int i = 0; i < nodeList.Count; i++)
            {
                array[i]     = Convert.ToInt32(nodeList[i].Attributes["OutlineLevel"].Value);
                array1[i]    = nodeList[i].Attributes["OutlineLevel"].Value.ToString();
                arrayName[i] = nodeList[i].Attributes["Description"].Value.ToString();
                pages[i]     = nodeList[i].Attributes["OutlineTarget"].Value.ToString();
            }
            for (int i = 0; i < array.Length - 1; i++)
            {
                //对array进行转换组装成可读的树形结构,通过ASCII值进行增加、转换
                array1[0] = "A";
                if (array[i + 1] - array[i] == 1)
                {
                    array1[i + 1] = array1[i] + 'A';
                }
                if (array[i + 1] == array[i])
                {
                    char s = Convert.ToChar(array1[i].Substring((array1[i].Length - 1), 1));
                    array1[i + 1] = array1[i].Substring(0, array1[i].Length - 1) + (char)(s + 1);
                }
                if (array[i + 1] < array[i])
                {
                    int  m = array[i + 1];
                    char s = Convert.ToChar(array1[i].Substring(0, m).Substring(m - 1, 1));
                    array1[i + 1] = array1[i].Substring(0, m - 1) + (char)(s + 1);
                }
            }
            //添加一个节点作为根节点
            TreeViewItem parent  = new TreeViewItem();
            TreeViewItem parent1 = null;

            parent.Header = "目录导航";
            Boolean flag = false;

            for (int i = 0; i < array.Length; i++)
            {
                if (array[i] == 1)
                {
                    flag = true;
                }
                if (flag) //如果找到实际根节点,加载树
                {
                    parent1        = new TreeViewItem();
                    parent1.Header = arrayName[i];
                    parent1.Tag    = array1[i];
                    parent.Items.Add(parent1);
                    parent.IsExpanded  = true;
                    parent1.IsExpanded = true;
                    FillTree(parent1, array1, arrayName);
                    flag = false;
                }
            }
            tvTree.Items.Clear();
            tvTree.Items.Add(parent);
        }
Example #10
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));
        }