none
Converter um arquivo XPS em XML RRS feed

  • Pergunta

  • Boa noite,

    Estou precisando efetuar uma leitura em um arquivo .XPS, da mesma forma que se efetua uma leitura em um arquivo .csv por exemplo.

    Bem eu consigo efetuar a leitura do arquivo .xps tranquilamente, porém da forma que faço isso fica complementa impossível identificar qualquer campo. 

    Pelo que andei pesquisando o XPS é um XML Paper Specification. A minha dúvida é a seguinte, eu consigo efetuar a leitura de um arquivo .xps no formato XML por exemplo? Assim conseguiria efetuar a distinção dos campos.

    Caso seja possível por favor me deem uma luz referente ao código.

    Abaixo segue o código que estou utilizando para efetuar a leitura do arquivo.

    public static string ReadXpsFile(string fileName)
            {
                XpsDocument xpsDocument = new XpsDocument(fileName, System.IO.FileAccess.Read);
                IXpsFixedDocumentSequenceReader fixedDocumentSequence = xpsDocument.FixedDocumentSequenceReader;
                IXpsFixedDocumentReader document = fixedDocumentSequence.FixedDocuments[0];
    
                string fullPageText = "";
    
                foreach (var page in document.FixedPages)
                {
                    StringBuilder currentText = new StringBuilder();
    
                    IXpsFixedPageReader pageReader = document.FixedPages[page.PageNumber - 1];
                    System.Xml.XmlReader pageContentReader = pageReader.XmlReader;
    
                    if (pageContentReader != null)
                    {
                        while (pageContentReader.Read())
                        {                                                
                            if (pageContentReader.Name == "Glyphs")
                            {
                                if (pageContentReader.HasAttributes)
                                {
                                    if (pageContentReader.GetAttribute("UnicodeString") != null)
                                    {
                                        currentText.AppendLine(pageContentReader.GetAttribute("UnicodeString"));
                                    }
                                }
                            }
                        }
                    }
    
                    fullPageText += currentText.ToString();
                }
    
                return fullPageText;
            }

    Att.

    Ricardo Rinco

    quarta-feira, 10 de fevereiro de 2016 22:50

Respostas

Todas as Respostas