Это известная проблема (т.е. вы правы, она не работает).
К сожалению, не существует особенно хорошего решения — самое простое предполагает использование пустого файла изображения размером 1 пиксель.
Обычная отправная точка - инвертировать вложение, чтобы у вас было что-то вроде этого...
{ INCLUDEPICTURE "{ IF "{ MERGEFIELD condition }" = "expression" "picture.png" }" }" \d }
Это всегда пытается вставить изображение и сообщает (и вставляет) об ошибке в случае, когда {условие MERGEFIELD} ‹> "выражение". Самое простое разрешение — это пустое 1-пиксельное изображение, которое вы можете включить вместо него, например.
{ INCLUDEPICTURE "{ IF "{ MERGEFIELD condition }" = "expression" "picture.png" "blank1.png" }" }" \d }
Иногда проще удалить тест и задание и выполнить их отдельно, особенно если тестов несколько. В таком случае,
{ SET picname "{ IF "{ MERGEFIELD condition }" = "expression" "picture.png" "blank1.png" }" }
или, если вы предпочитаете,
{ IF "{ MERGEFIELD condition }" = "expression" "{ SET picname "picture.png" }" "{ SET picname "blank1.png" }" }
Вам по-прежнему нужен IF, вложенный в INNCLUDEPICTURE, чтобы заставить его работать. Ты можешь использовать:
{ INCLUDEPICTURE "{ IF TRUE { picname } }" \d }
Если вы объедините эти вложенные поля в выходной документ, поля останутся в выходных данных. Если вы хотите, чтобы поля были разрешены (например, потому что вам нужно отправить вывод тому, у кого нет файлов изображений), вам нужно что-то вроде этого:
{ IF { INCLUDEPICTURE "{ IF TRUE { picname } }" } { INCLUDEPICTURE "{ IF TRUE { picname } }" \d } }
Я считаю, что вы можете уменьшить это до
{ IF { INCLUDEPICTURE "{ picname }" } { INCLUDEPICTURE "{ IF TRUE { picname } }" \d } }
Фактически, я считаю, что вы можете вставить полный путь + имя любого графического файла, который, как вы знаете, существует, вместо первого {picname}, например.
{ IF { INCLUDEPICTURE "the full pathname of blank1.png" } { INCLUDEPICTURE "{ IF TRUE { picname } }" \d } }
Но вы должны убедиться, что они работают для вас.
РЕДАКТИРОВАТЬ FWIW, некоторые недавние тесты показывают, что хотя изображения появляются несвязанными, при сохранении/повторном открытии отображается восстановленная ссылка (с *MERGEFORMATINET ближе к концу), и ожидается, что изображения будут находиться в местах, указанных в этих ссылках. Связано ли это с изменением Word, я не могу сказать. Если что-то и изменилось, похоже, это попытка разрешить относительную адресацию пути в записях отношений, которые Word создает внутри .docx.
Некоторые наблюдения...
- Убедитесь, что пути имеют двойную обратную косую черту, например. c:\\mypath\\blank1.png . Обычно это необходимо для любых путей, жестко закодированных в полях. Для путей, которые входят через вложенные коды полей, проверьте.
- Как правило, с полями INCLUDEPICTURE проще работать, когда документ имеет формат .doc, а не .docx, и убедиться, что File->Options->Advanced->General->Web options->Files->"Update ссылки при сохранении" проверяется. В противном случае Word, скорее всего, заменит поля INCLUDEPICTURE результатом, который нельзя повторно отобразить как поле с помощью сочетания клавиш Alt-F9.
- Если вы хотите рассматривать сравнения в поле IF как строки, рекомендуется заключать их в двойные кавычки, как это сделал я. В противном случае поле {MERGEFIELD}, разрешающее имя закладки, может вести себя не так, как хотелось бы. В противном случае интервалы и цитирование в значительной степени являются вопросом личного выбора.
До сих пор ни одна из этих конструкций полей не имела дело с ситуацией, когда у вас есть имена путей для изображений, которые могут существовать или не существовать. Если это то, что вам нужно, измените исходный вопрос.
person
Community
schedule
04.12.2013