Как слить по почте документ Word в c# (через путь blob) - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь работать над слиянием писем для создания текстовых документов на основе некоторых динамических c данных, но меня поразил момент, когда у меня есть путь к blob-файлу для чтения документа вместо прямого c файла .

Есть ли способ прочитать данные приложения из пути большого двоичного объекта или есть ли способ динамически преобразовать путь большого двоичного объекта в документ Word.

Я перешел по приведенной ниже ссылке для слияния почты но мне нужно использовать путь к двоичному объекту для создания документа вместо файла c.

Как выполнить слияние по почте документа Word в c#

public static void TextToWord(string pWordDoc, string pMergeField, string pValue)
{
    Object oMissing = System.Reflection.Missing.Value;
    Object oTrue = true;
    Object oFalse = false;
    Word.Application oWord = new Word.Application();
    Word.Document oWordDoc = new Word.Document();
    oWord.Visible = true;

    Object oTemplatePath = pWordDoc;**//Here instead of doc file or doc file path I have a blobpath**
  //Something like this    
    //Object oTemplatePath = "https://bviewstorage.blob.core.windows.net/909347fb-e9ed-4f0c-9ef9- 
    //347ad017f7f9/localsiteuploads/92f9e761-65e2-46f9-82a1-a05fa9e26cda/file-sample_100kB-53c5fb9c-931d- 
    //4f95-b2cb-48b3a38e6f29.doc";
    oWordDoc = oWord.Documents.Add(ref oTemplatePath, ref oMissing, ref oMissing, ref oMissing);
    foreach (Word.Field myMergeField in oWordDoc.Fields)
    {
        Word.Range rngFieldCode = myMergeField.Code;
        String fieldText = rngFieldCode.Text;
        if (fieldText.StartsWith(" MERGEFIELD"))
        {
            Int32 endMerge = fieldText.IndexOf("\\");
            Int32 fieldNameLength = fieldText.Length - endMerge;
            String fieldName = fieldText.Substring(11, endMerge - 11);
            fieldName = fieldName.Trim();
            if (fieldName == pMergeField)
            {
                myMergeField.Select();
                oWord.Selection.TypeText(pValue);
            }
        }
    }

...