none
Template Word RRS feed

  • Pergunta

  • Galera estou precisando incluir informações no meu template word entre o cabeçalho e o rodapé, mas as informações estão sendo colocadas erradas e minhas informações que estão no começo da pagina vão para o final. Vou colocar os prints aqui para um melhor entendimento:

    Entre o cabeçalho e o rodapé tenho os passos...

    Porem quando estou colocando imagens dentro do template, as mesmas estão caindo antes dos passos jogando os passos para o final do template.

    Como posso fazer com que as imagens fique após os passos, sendo que esses passos eu não tenho previsão que quantos o usuário colocará ?

    Segue meu código:

    List<string> arquivoSaida = new List<string>();
                string[] arquivoEspec = LerEspecificacao(arquivoEspecificacao);
    
                //Objeto a ser usado nos parâmetros opcionais
    
                object missing = System.Reflection.Missing.Value;
    
                //Abre a aplicação Word e faz uma cópia do documento mapeado
    
                Word.Application oApp = new Word.Application();
    
                object template = arquivoTemplate;
    
                Word.Document oDoc = oApp.Documents.Add(ref template, ref missing, ref missing, ref missing);
    
                //Troca o conteúdo de alguns tags
    
                Word.Range oRng = oDoc.Range(ref missing, ref missing);
    
    
                object FindText = null;
                Object ReplaceWith = null;
                object MatchWholeWord = true;
                string ambiente="";
                string plataforma="";
    
                object Forward = false;
                System.Text.StringBuilder sb = new System.Text.StringBuilder();
    
                foreach (var item in arquivoEspec)
                {
                    var itemRetornado = retornoTags.ToArray().Where(x => item.Contains(x.ToString()));
    
                    if (itemRetornado.Count() > 0)
                    {
                        var split = item.Split(':');
    
                        FindText = itemRetornado.FirstOrDefault();
    
                        ReplaceWith = split[1].ToString();
    
                        if (FindText.ToString().ToUpper() == "#AMBIENTE")
                            ambiente = split[1].ToString();
    
                        if (FindText.ToString().ToUpper() == "#PLATAFORMA")
                            plataforma = split[1].ToString();
    
                        oRng.Find.Execute(ref FindText, ref missing, ref MatchWholeWord, ref missing, ref missing, ref missing, ref Forward,
    
                        ref missing, ref missing, ref ReplaceWith, ref missing, ref missing, ref missing, ref missing, ref missing);
    
                        oRng = oDoc.Range(ref missing, ref missing);
    
                    }
                }
    
                
    
                DirectoryInfo diretorio = new DirectoryInfo(evidencia);
                //var arquivos = diretorio.GetFiles("*.png").OrderBy(a => a.CreationTime);
                var arquivos = diretorio.GetFiles("*.png").OrderByDescending(a => a.CreationTime);
                var arquivosLog = diretorio.GetFiles("*.log").OrderByDescending(a => a.LastWriteTime);
    
                Object oMissed = oDoc.Paragraphs[primeiraParte.Count()].Range;
                Object oSaveWithDocument = true;
                Object oLinkToFile = true;
    
                foreach (var filePath in arquivos)
                {
                    //var pPicture = oDoc.Paragraphs.Add();
                    //oDoc.InlineShapes.AddPicture(filePath.FullName, ref oLinkToFile, ref oSaveWithDocument, Range: pPicture.Range);
                    oDoc.InlineShapes.AddPicture(filePath.FullName, ref oLinkToFile, ref oSaveWithDocument, oMissed);
    
                }
    
                Object oLinkToFilee = false;
                Object DisplayAsIcon = false;
    
                if (arquivosLog.Count() > 0)
                {
                    //var pArquivo = oDoc.Paragraphs.Add();
                    //oDoc.InlineShapes.AddOLEObject(ClassType: "Package", FileName: arquivosLog.FirstOrDefault().FullName, LinkToFile: oLinkToFilee, DisplayAsIcon: DisplayAsIcon, Range: pArquivo.Range);
                    oDoc.InlineShapes.AddOLEObject(ClassType: "Package", FileName: arquivosLog.FirstOrDefault().FullName, LinkToFile: oLinkToFilee, DisplayAsIcon: DisplayAsIcon, Range: oMissed);
                }
    
                oDoc.SaveAs(evidencia + @"\Evidencias.docx"); // or whatever
    
    
                oDoc.Close(ref missing, ref missing, ref missing);
                oDoc = null;
                oApp.Quit(ref missing, ref missing, ref missing);
                oApp = null;
    
                //renomear arquivo
                RenomearArquivo(evidencia, ambiente, plataforma);

    Obrigado


    SirSmart

    sexta-feira, 28 de outubro de 2016 12:00

Respostas

Todas as Respostas