Beispiel #1
0
        public static int SubstituirPorRegex(string arquivoOrigem, string arquivoDestino, IEnumerable <SubstituicaoRegex> substituicoes)
        {
            UtilitarioArquivo.ClonarArquivo(arquivoOrigem, arquivoDestino);

            int quantidadeSubstituicoes = 0;

            using (PresentationDocument presentation =
                       PresentationDocument.Open(arquivoDestino, isEditable: true))
            {
                foreach (SlidePart slidePart in presentation.PresentationPart.SlideParts)
                {
                    XDocument xDocument = slidePart.GetXDocument();

                    foreach (SubstituicaoRegex substituicao in substituicoes)
                    {
                        // Replace content
                        IEnumerable <XElement> content = xDocument.Descendants(A.p);
                        quantidadeSubstituicoes += OpenXmlRegex.Replace(content, substituicao.Chave, substituicao.Valor, doReplacement: null);

                        // If you absolutely want to preserve compatibility with PowerPoint 2007, then you will need to strip the xml:space="preserve" attribute throughout.
                        // This is an issue for PowerPoint only, not Word, and for 2007 only.
                        // The side-effect of this is that if a run has space at the beginning or end of it, the space will be stripped upon loading, and content/layout will be affected.
                        xDocument.Descendants().Attributes(XNamespace.Xml + "space").Remove();

                        slidePart.PutXDocument();
                    }
                }
            }

            return(quantidadeSubstituicoes);
        }
Beispiel #2
0
        public static void Substituir(string arquivoOrigem, string arquivoDestino, IEnumerable <Substituicao> substituicoes)
        {
            UtilitarioArquivo.ClonarArquivo(arquivoOrigem, arquivoDestino);

            using (WordprocessingDocument document = WordprocessingDocument.Open(arquivoDestino, isEditable: true))
            {
                foreach (Substituicao substituicao in substituicoes)
                {
                    TextReplacer.SearchAndReplace(
                        document,
                        substituicao.Chave,
                        substituicao.Valor,
                        substituicao.MatchCase);
                }
            }
        }
Beispiel #3
0
        public void ClonarArquivoTeste()
        {
            string arquivoOrigem    = @".\Recursos\TesteClonarArquivo.txt";
            string diretorioDestino = @".\Resultados\ClonarArquivoTeste";

            var directoryInfo = new DirectoryInfo(diretorioDestino);

            if (directoryInfo.Exists)
            {
                directoryInfo.Delete(recursive: true);
                directoryInfo.Create();
            }

            string arquivoDestino = $@"{diretorioDestino}\Teste ClonarArquivoTeste.txt";

            UtilitarioArquivo.ClonarArquivo(arquivoOrigem, arquivoDestino);

            int       quantidadeArquivos         = directoryInfo.GetFiles().Count();
            const int quantidadeArquivosEsperada = 1;

            Assert.Equal(quantidadeArquivosEsperada, quantidadeArquivos);
        }
Beispiel #4
0
        public static int SubstituirPorRegex(string arquivoOrigem, string arquivoDestino, IEnumerable <SubstituicaoRegex> substituicoes)
        {
            UtilitarioArquivo.ClonarArquivo(arquivoOrigem, arquivoDestino);

            int quantidadeSubstituicoes = 0;

            using (WordprocessingDocument wordDocument = WordprocessingDocument.Open(arquivoDestino, isEditable: true))
            {
                XDocument xDocument = wordDocument.MainDocumentPart.GetXDocument();

                IEnumerable <XElement> content = xDocument.Descendants(W.p);

                foreach (SubstituicaoRegex substituicao in substituicoes)
                {
                    quantidadeSubstituicoes += OpenXmlRegex.Replace(content, substituicao.Chave, substituicao.Valor, doReplacement: null);
                }

                wordDocument.MainDocumentPart.PutXDocument();
            }

            return(quantidadeSubstituicoes);
        }