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(); } }
// 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 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); }
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); }
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); }
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)); }