|
Печатная форма в Word (БСП) и параметры страницы | ☑ | ||
---|---|---|---|---|
0
andrewks
18.08.12
✎
15:10
|
сварганил печатную форму с макетом в Word (БСП), всё, вроде, хорошо, и колонтитулы, и форматирование. но осталась одна проблемка: в выходном документе параметры страницы устанавливаются в стандартные, а не берутся из макета. из-за этого вся красота документа, естественно, портится.
как побороть? |
|||
1
andrewks
18.08.12
✎
16:52
|
ап, что-ли
|
|||
2
andrewks
18.08.12
✎
17:00
|
мдэ, с OpenOffice дела ещё хуже - слетают не только параметры страницы, но ещё шрифты и выравнивание некоторых строк
|
|||
3
andrewks
18.08.12
✎
18:00
|
итак, настройки от макета-шаблона нужно передавать так:
для опенофиса параметры страницы перекочёвывают нормально, но проблема с шрифтами и выравниванием некоторых строк так и не побеждена. для ms-офиса параметры не устанавливаются. как показала отладка, из-за того, что самые нужные параметры приходят из Word'а некорректно. например, имеем такой тестовый код:
часть настроек приходит нормально, но некоторые, например, так: TopMargin = 9 999 999 BottomMargin = 9 999 999 при этом, если открытие документа заменить на создание нового: COMОбъект.Documents.Add(); то все настройки приходят нормально: TopMargin = 56,70000076293945 BottomMargin = 56,70000076293945 куда рыть? |
|||
4
andrewks
18.08.12
✎
18:25
|
проверил БСП вплоть до 2.1.1.14 - везде настройки запрашиваются через ActiveDocument. однако эксперименты на моём офисе (Office XP SP3/2002) показали, что правильные настройки после Documents.Open() нужно искать через COMОбъект.Documents.Item(1).PageSetup[ИмяНастройки]
если у кого есть возможность потестить на офисах 2003 и выше, отпишитесь, пожалуйста, о поведении при стандартном БСП-шном доступе через ActiveDocument |
|||
5
andrewks
18.08.12
✎
20:46
|
Documents.Item(1) - сторно, не всегда отрабатывает. теперь тяну через Sections.
я, конечно, исправил посредством патча модуля УправлениеПечатьюMSWordКлиент, но хотелось бы мнений других товарищей по этому вопросу |
|||
6
andrewks
18.08.12
✎
22:02
|
- доктор, мне кажется, что меня все игнорируют...
- следующий! |
|||
7
IamAlexy
18.08.12
✎
22:09
|
долго долго всячески разные формы делал
в итоге пришел к выводу что форма в ворде имеет смысл только в том случае, если макет будут делать сами пользователи. когда программист делает печатную форму - на 8ке вообще похрен в чем выводится ибо простой табличный документ можно сохранить в 100500 различных форматов соответственно возня с вордом, опенофисом и их глюками/особенностями просто напросто теряет смысл. а как правило пользователи тупы и никто не хочет заморачиваться с шаблонами. |
|||
8
andrewks
20.08.12
✎
08:45
|
итак, дальнейшие наблюдения показали:
1. слетающее форматирование в шаблоне ODT наблюдалось в OOo 3.3, но в LO 3.4-3.5 ничего не слетает, всё выводится корректно безо всякого "допила" 2. по поводу Word'а с его параметрами "9999999", всё-таки, хотел бы услышать мнения и опыт личного применения |
|||
9
andrewks
20.08.12
✎
09:11
|
типа, ап
|
|||
10
andrewks
20.08.12
✎
09:47
|
граждане, не будьте равнодушными, не проходите мимо
|
|||
11
Karambol
20.08.12
✎
09:50
|
Не знаю, поможет ли, но я подобную проблему решал так: в шаблоне выделял весь текст, потом Изменить стили - По умолчанию и сохранял.
|
|||
12
andrewks
20.08.12
✎
10:07
|
(11) со стилями, как раз, сейчас все проблемы решил. осталась проблема с установкой параметров страницы при печати в Word при использовании стандартного кода БСП. из-за этого прихшлось делать патч в
УправлениеПечатьюMSWordКлиент.ПолучитьМакетMSWord():
т.е. на любую конфу внешку уже не накатишь - надо или патч делать, или смириться с расползающимися полями. вот этот момент хочу, чтобы потестили форумчане, особенно тестовый код из (3) - у кого как и на каких версиях MSoffice выводятся параметры страницы |
|||
13
andrewks
20.08.12
✎
11:23
|
^ ^
|
|||
14
andrewks
20.08.12
✎
15:02
|
ок, зайдём с другой стороны.
вот готовая обработка для тестирования (1с 8.2 УФ): http://yadi.sk/d/yrSFqtXhHQMA просьба, у кого есть установленные MS Office версий 2003 и выше, и кому не жалко потратить лишних 3-5 минут, - проверьте, пожалуйста, как у вас будут выводится значения настроек страницы больше всего интересуют: TopMargin/BottomMargin/LeftMargin/RightMargin просьба указать версию MS Office, и в каком из способов чтения настроек были получены реальные значения (нереальные - это если много девяток: TopMargin = 9 999 999 ) я рассчитываю на вашу помощь! |
|||
15
pumbaEO
20.08.12
✎
15:11
|
ща заценим.
|
|||
16
andrewks
20.08.12
✎
15:13
|
(15) спасибо, друг! а то уже думал, что тема так и затухнет в одиночестве
|
|||
17
pumbaEO
20.08.12
✎
15:15
|
http://screencast.com/t/vgiYVJYyzz , office 2007
|
|||
18
andrewks
20.08.12
✎
15:19
|
(17) вот жешь чёрт, а на office xp глючит через ActiveDocument.PageSetup. спасибо за помощь!
у кого есть другие версии (2003, 2010, 2012) - хотелось бы тоже узнать, как дела обстоят на этих версиях |
|||
19
pumbaEO
20.08.12
✎
15:27
|
2003 нормально. 9999999999 - не было.
|
|||
20
dk
20.08.12
✎
15:28
|
хз, у меня вообще зависает в конфигураторе на попытке маке тпоглядеть
|
|||
21
dk
20.08.12
✎
15:29
|
маке = макет
|
|||
22
andrewks
20.08.12
✎
15:30
|
(20) а зачем ты хочешь смотреть макет в конфигураторе? =) там двоичные данные, вообще-то
|
|||
23
andrewks
20.08.12
✎
15:31
|
(19) ага, спасибо огроменное. будем считать это глюком конкретно office xp. хоть будет обозначен проблемный круг на будущее
|
|||
24
dk
20.08.12
✎
15:33
|
любопытно же
виснет просто если список макетов раскрыть |
|||
25
andrewks
20.08.12
✎
15:33
|
(24) какой релиз платформы?
|
|||
26
andrewks
20.08.12
✎
15:33
|
сохранял на 8.2.15.319
|
|||
27
dk
20.08.12
✎
15:37
|
1С:Предприятие 8.2 (8.2.15.318)
|
|||
28
andrewks
20.08.12
✎
15:39
|
(27) странно. возможно, следует почистить кэш, из-за него, порой, очень интересные эффекты бывают
|
|||
29
dk
20.08.12
✎
15:41
|
MS Word 2010 - нормально открыл все
|
|||
30
andrewks
20.08.12
✎
15:47
|
(29) спасибо!
|
|||
31
andrewks
20.08.12
✎
21:02
|
придётся апать.
внезапно(!) выяснилось, что проблема в конкретном шаблоне (корректный ворд-файл, открывается корректно, поля показываются правильно, но при доступе через ActiveDocument.PageSetup - девятки) пробовал создавать новый док, копировать в него содержимое и сохранял - всё равно глючит. у кого есть немного свободного времечка, гляньте, как этот файл ведёт себя на других версиях MS Office. новая версия обработки: http://yadi.sk/d/eK1d1Q_ZHnuR сам файл-виновник: http://yadi.sk/d/ldRE0xvDHnuF если вдруг у кого возникнут догадки, от чего такое может быть - буду благодарен |
|||
32
zladenuw
20.08.12
✎
21:10
|
(31) помогу. результат напишу
|
|||
33
andrewks
20.08.12
✎
21:11
|
9999999 - это wdUndefined.
вопрос - почему в этом доке оно wdUndefined? и почему через Секцию всё показывается нормально? |
|||
34
andrewks
20.08.12
✎
21:13
|
а тема-то бородатая http://msgroups.net/microsoft.public.word.vba.general/page-margin-issue/42429
только причина неясна |
|||
35
andrewks
20.08.12
✎
21:16
|
http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/85a286b5-91b5-457a-93b5-ef56ff31a116/
я - Д'Артаньян, 1совцы - сами знаете, кто. всё-таки у них глюк в коде, и нужен патч (12) |
|||
36
zladenuw
20.08.12
✎
21:18
|
(35) в 1с ? вроде борода 2008 года
|
|||
37
andrewks
20.08.12
✎
21:19
|
ответ спеца от мелкософта:
If a document contains more than one section with differing settings and/or it's very long, querying on the entire document will return the value "indeterminate" (9999999). перевожу: Если документ содержит более одной секции с разными настройками и/или он очень большой, запрос к всему документу возвращает значение "неопределено" (9999999). и советует использовать .Sections(1).PageSetup |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |