0 votos
44 visitas
por (1,8K pontos)
editado por | 44 visitas

1 Resposta

0 votos
Sim!
Para substituição de palavras dentro de um .doc existe a função WordFindAndReplace(documentPath,dictionary,isBookmark);
Também é possível criar um script para converter arquivos .doc para .pdf.

Veja o exemplo abaixo:



Arquivo no word:


Arquivo gerado:


Script utilizado:
 
using Aspose.Words;
using System.IO;

// consulta a lista de anexos do registro
string sqlAnexos = @"SELECT Path FROM RelItemVersionAttachment rel WITH(NOLOCK) INNER JOIN FileAttachment f WITH(NOLOCK) ON f.ID = rel.File_ID WHERE ItemVersion_ID  = (SELECT MAX(iv.ID) FROM ItemVersion iv WITH(NOLOCK) WHERE iv.Item_ID = " + Convert.ToInt32(currentItem["ID"]) + ")";

DataSet dsAnexos =  RunDbCommandDataSet(sqlAnexos);
foreach(DataRow row in dsAnexos.Tables[0].Rows){ 
    
    string strPath = GetAttachmentLink(Convert.ToInt64(currentItem["ID"]), Convert.ToString(row["Path"]));

    Dictionary<string,object> toWord = new Dictionary<string,object>();
    toWord.Add("@Campo1",Convert.ToString(currentItem["Campo1"]));
    toWord.Add("@Campo2",Convert.ToString(currentItem["Campo2"]));
    toWord.Add("@Campo3",Convert.ToString(currentItem["Campo3"]));
    
    
    // Gera o doc substituindo as palavras e recupera o path do doc
    string strDocGerado = WordFindAndReplace(strPath,toWord);
    string ArtifactsDir = System.Web.HttpContext.Current.Server.MapPath("~/../" + strDocGerado);
    

    //converte o doc para pdf
    Document doc = new Document(ArtifactsDir);
    MemoryStream stream = new MemoryStream();
    doc.Save(stream, SaveFormat.Pdf);
    // Rewind the stream position back to the beginning, ready for use
    stream.Seek(0, SeekOrigin.Begin);
    ArtifactsDir = ArtifactsDir.Replace("doc","pdf");
    doc.Save(ArtifactsDir);
    
    
    // abre o documento em pdf
    OpenURL(strDocGerado.Replace("doc","pdf"));
    
}
            


👉 Se quiser testar este exemplo, você pode baixar este aplicativo de testes e importar na sua instância: TesteWORD_PDF.saat

 
por (1,8K pontos)
editado por
Seja bem vindo ao fórum Madrix, onde você pode fazer perguntas e receber respostas de outros membros da comunidade.
42 perguntas
42 respostas
1 comentário
16 usuários