У нас есть приложение Win32, которое объединяет документы в Word через OLE из различных фрагментов, хранящихся в базе данных. Существует шаблон Word с набором макросов, предназначенный для того, чтобы документ Word не мог быть сохранен на диск, но будет сохранен обратно в базу данных. Все идет нормально. Допустим, система работает.
У нас есть только для чтения пользователей. Дизайн состоит в том, что используется другой шаблон, чтобы эти пользователи могли просматривать документы. Этот шаблон браузера был поврежден, поэтому сохранение файла невозможно.
Я выявил очень специфическое обстоятельство, когда этот дизайн не срабатывает - когда изображение попадает в таблицу, шаблон только для чтения сбрасывает его за пределы таблицы, что приводит к полному переформатированию всего документа - определенно НЕ того, что требуется.
Сохраняя образец документа в формате xml, по одному разу для каждого случая, я показал, что в плохом документе появляется «allowincell = false» для каждой затронутой графики. Кажется разумным предположить, что это виновник. Атрибут вообще не упоминается в хорошей версии . (Странно, поскольку в MSDN указано «false» - это значение по умолчанию, по крайней мере в .NET)
Было бы полезно, если бы я лучше понял механизм, с помощью которого устанавливается это значение. Если бы мне пришлось сделать предположение, я бы предположил, что для атрибута установлено значение True (то есть не упоминается), поскольку первоначальный пользователь запросил это просто, поместив изображение в таблицу.
В конечном счете, мой вопрос - какое МИНИМАЛЬНОЕ вмешательство я могу предпринять для решения этой конкретной проблемы? Любые предложения о том, как это можно сделать, будут приняты с благодарностью.