![]() |
Модераторы: mihanik |
![]() ![]() ![]() |
|
WERITAS |
|
|||
******** ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 2.5.2005 Где: Москва Репутация: нет Всего: 5 |
Добрый день. Моя программа (которая написана на ПхП) использует СОМ-объект Word'a, для экспорта табличной информации в документ .doc. То есть документ .doc я создаю и сохраняю автоматически, используя свойства и методы СОМ-объекта.
Однако если получившийся документ открыть в OpenOffice, то таблицы, которые есть в документе, отображаются не так как в Ворд (см. аттач КакЕсть.doc ). Нарушаются настройки ширины колонок в таблице. В то же время стоит только мне сделать ЛЮБОЕ редактирование получившегося документа (например, поставить пробел в конце документа) и сохранить его, как потом он открывается и просматривается в OpenOffice "нормально", все настройки таблицы такие же как и в Ворде (см. аттач КакНадо.doc ). Если я просто нажимаю "Сохранить" в моём получившемся документе, то это не помогает. Помогает именно редактирование и последующее сохранение. На основе этих наблюдений я сделал вывод, что документ формируется как-то "неправильно". Что мне надо сделать, чтобы документ формировался "правильно"? Отблагодарю в репу за пример макроса, который "исправляет" сформированный документ как надо ![]() Присоединённый файл ( Кол-во скачиваний: 4 ) ![]() -------------------- Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак" |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
а если вместо РНР кода с обращениями к СОМ написать макрос аналогичной функциональности и при помощи его создать файл. и сохранить его. то все нормально будет или нет?
Добавлено через 10 минут и 24 секунды вобщем, если причина неизвестна, то самым быстрым методом отладки будет отсечение всего, что к ошибке не приводит, уменьшая проблему до одной-двух-трех строк кода. будет неплохо, если ты сам упростишь свой скрипт до минимально допустимого размера. чтоб не таблица на 14 страниц, на каждой из которых - колонтитулы и дополнительно извне таблицы текст. а таблица из одной строки. конечно,если при таком упрощении проблема останется. а то сейчас вариантов масса: 0. некорректная работа РНР-скрипта(например, передача вместо целого числа числа с плавающей запятой - типа 7.999 вместо 8) 1. проблемы с СОМ(маловероятно, используют ведь) 2. проблемы сохранения документа, которые исправляются при повторном сохранении документа(без реального редактирования, мне кажется, редактор просто фактически не сохраняет документ - в целях оптимизации; потому тебе и "требуется" хоть что-то, но исправить) 3. спорные параметры, которые ОО не понимает. а при пересохранении используется некий режим "совместимости" в отличие от генерации через СОМ. ---------- вот. минимум - 4 точки вероятного сбоя. а если у тебя будет скрипт на несколько строк, то каждый желающий сможет воспроизвести и ошибку станет проще обнаружить. Добавлено через 10 минут и 55 секунд у тебя 512 сообщений. поздравляю! |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Попробуй использовать не DOC, а RTF. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
WERITAS |
|
||||
******** ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 2.5.2005 Где: Москва Репутация: нет Всего: 5 |
Я написал код VBA, который делает всё тоже самое, что и мой СОМ-объект:
Всё равно, когда открываю в OpenOffice, то таблицы кривые ((((((( мхт-файлик во вложении Добавлено через 7 минут и 49 секунд Попробовал задать больше параметров при сохранении написав:
Не помогло! В чём же тут дело???? Присоединённый файл ( Кол-во скачиваний: 1 ) ![]() -------------------- Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак" |
||||
|
|||||
WERITAS |
|
|||
******** ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 2.5.2005 Где: Москва Репутация: нет Всего: 5 |
Начал исследовать вёрстку в мхт-файле, думал, что дело в тэгах. Удалось установить, что когда в таблице 199 тэгов <tr>, то есть 199 строк, то всё формируется нормально. Потом я открываю в ОпенОфисе сгенерированный доковский файл и у меня таблицы выглядят как в Ворде. Стоит только добавить ещё одну строку в таблицу, пускай даже пустую, то есть тэг <tr class="Array"></tr>, снова сформировать доковский файл вышеприведённым макросом и открыть этот файл в ОпенОфисе, как опять таблицы "кривые" ((
Это сообщение отредактировал(а) WERITAS - 10.2.2010, 13:42 -------------------- Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак" |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
то есть твой РНР скрипт открывал mht и при помощи СОМ сохранял его как .doc?
|
|||
|
||||
WERITAS |
|
|||
******** ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 2.5.2005 Где: Москва Репутация: нет Всего: 5 |
Да, похоже что дело всё-таки в вёрстке, но закономерность я найти не могу (( Вышеописанный случай с кол-вом строк не сработал
-------------------- Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак" |
|||
|
||||
WERITAS |
|
||||||||
******** ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 2.5.2005 Где: Москва Репутация: нет Всего: 5 |
Сгенерировал 2 doc-документа, менял вёрстку. В первом документе одна таблица правильно отображается, две другие неправильно. Во втором документе первые две таблицы правильно, третья - неправильно. Сохранил оба документа в xml-формате.
1 документ
2 документ
Когда таблица отображается на всю ширину страницы (как мне и надо), то у неё
а когда криво отображается, то
-------------------- Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак" |
||||||||
|
|||||||||
![]() ![]() ![]() |
Правила форума "Программирование, связанное с MS Office" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |