|
Документооборот - визуализация ЭП - вставляет абзац в начале docx? | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
08.04.22
✎
13:36
|
2.1.29.17
При визуализации ЭП в docx в документ вставляет в начале пустой абзац Это типовое поведение (конфа дописана)? |
|||
1
silent person
08.04.22
✎
13:51
|
в docx картинка вставляется в новом абзаце. в файл вставляется кусок xml схемы из общего макета "ВставкаШтрихкодаСУказаниемПоложенияDocx". в первой же строке тэг <w:p> - это новый абзац
|
|||
2
RomaH
naïve
08.04.22
✎
14:04
|
(1) а исправить как?
|
|||
3
silent person
08.04.22
✎
14:21
|
вставить штамп без добавления абзаца ? даже не знаю как :), это надо разбираться подробнее и программировать :)
собственно вот упрощенная схема документа: https://docs.microsoft.com/ru-ru/office/open-xml/structure-of-a-wordprocessingml-document <?xml version="1.0" encoding="utf-8"?> <w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"> <w:body> <w:p> <w:r> <w:t>Hello, Word!</w:t> </w:r> </w:p> </w:body> </w:document вставка картинки идет в функции ВизуализацияЭПВызовСервера.ВставитьИзображениеЭПВФайлDocxСУказаниемПоложения() там находят тег "w:body" и вставляют xml кусок .... Если ЧтениеXML.Имя = "w:body" Тогда ВставитьШтамп = Истина; КонецЕсли; ЗаписьXML.ЗаписатьНачалоЭлемента(ЧтениеXML.Имя); Пока ЧтениеXML.ПрочитатьАтрибут() Цикл ЗаписьXML.ЗаписатьАтрибут(ЧтениеXML.Имя,ЧтениеXML.Значение); КонецЦикла; Если ВставитьШтамп Тогда ЗаписьXML.ЗаписатьБезОбработки(ТекстДляВставкиШтампа); ВставитьШтамп = Ложь; КонецЕсли; ... |
|||
4
RomaH
naïve
08.04.22
✎
14:31
|
я правильно понимаю - сейчас просто добавляется абзац в начало документа и к нему привязывается картинка
как вариант - надо искать уже существующий абзац и привязывать к нему или вставлять ну очень маленький абзац - но это не красиво все-равно https://ibb.co/4RqXBGW |
|||
5
RomaH
naïve
08.04.22
✎
14:51
|
(3) похоже надо искать <w:p и вставлять туда кусок внутри <w:p который в ТекстДляВставкиШтампа
по крайней мере руками получилось |
|||
6
RomaH
naïve
08.04.22
✎
15:24
|
+(5) вполне
//вставка разметки для регштампа в файл ВставитьШтамп = Неопределено; Пока ЧтениеXML.Прочитать() Цикл Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда //Если ЧтениеXML.Имя = "w:body" Тогда Если ВставитьШтамп = Неопределено И ЧтениеXML.Имя = "w:p" Тогда ВставитьШтамп = Истина; КонецЕсли; ЗаписьXML.ЗаписатьНачалоЭлемента(ЧтениеXML.Имя); Пока ЧтениеXML.ПрочитатьАтрибут() Цикл ЗаписьXML.ЗаписатьАтрибут(ЧтениеXML.Имя,ЧтениеXML.Значение); КонецЦикла; Если ВставитьШтамп = Истина Тогда ЗаписьXML.ЗаписатьБезОбработки(ТекстДляВставкиШтампа); ВставитьШтамп = Ложь; КонецЕсли; и из макета удалить w:p - единственное ... может быть docx без w:p вообще? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |