Добавить изображение в шаблон слова - PullRequest
0 голосов
/ 24 апреля 2019

Привет всем, у меня есть код, который имеет Open XML SDK, чтобы найти MERGEFIELD в документах Microsoft Word и заменить их предоставленными данными, это работает хорошо, но Я хочу заменить предоставленную строку изображением,

Код по ссылке:

https://www.codeproject.com/Articles/38575/Fill-Mergefields-in-docx-Documents-without-Microso

    using (WordprocessingDocument docx = WordprocessingDocument.Open(stream, true))
                    {
                        //  2010/08/01: addition
                        ConvertFieldCodes(docx.MainDocumentPart.Document);

                        // first: process all tables
                        foreach (var field in docx.MainDocumentPart.Document.Descendants<SimpleField>())
                        {
                            string fieldname = GetFieldName(field, out switches);
                           // I will get fieldname "ImgLogo" and then I want to add an Image at this position. 
                        }
                    }

Я получу имя поля "ImgLogo", как показано выше, а затем я хочу добавить изображение в этой позиции. Полный код указан в приведенной выше ссылке.

Помогите мне здесь Спасибо заранее.

1 Ответ

0 голосов
/ 24 апреля 2019

Вы можете использовать оператор mergefield if.Запишите свое утверждение, и после того, как вы закончите, вставьте изображение в сегмент else оператора if.

https://wordmvp.com/FAQs/MailMerge/MMergeIfFields.htm

Нажмите Alt + F9, чтобы отобразить коды полей слияния в word / excel.Если нужно редактировать шаблон документа, а не конечный продукт.Поскольку вы не можете видеть поля после их слияния.

Когда вы объединяете изображение, оно перезапишет оба поля {MERGEFIELD MergeImage}.Когда он перезаписывает их, {MERGEFIELD MergeImage} = "" не будет истинным и будет отображать ваше изображение вместо заполнителя.Как уже говорилось, изображение заполнителя должно быть вставлено в = "Вставить заполнитель здесь".

Это работает так же, как и до объединения вашего изображения, {MERGEFIELD MergeImage} равно пустой строке.

Например,

{ IF { MERGEFIELD MergeImage } = "" "Paste Placeholder here" "{ MERGEFIELD MergeImage }" }

с разбивкой по вышесказанному:

{ IF CONDITION "TRUE" "FALSE" }

Если ничего не было объединено, вы получите заполнитель, иначе вы получите объединенное изображение.

...