![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
есть ли способ править доковский файл, как шаблон?
по принципу:
или придётся писать его целиком заново? в длинном договоре надо всего лишь заменить десяток переменных |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
В Word этот функционал есть.
Более того, он тебе может шаблон заполнить данными из БД через ODBC -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
ммм, что-то мне по постановке фразы кажется, что недопоняли. мне не в ворде надо вставить данные, а на сервере налету вписывать их в доковский файл.
пользователь указывает реквизиты, которые сохраняются в mysql БД, а затем скачивает документы с расщирением doc, в которых эти реквизиты уже проставлены это имеется ввиду? http://php.net/manual/ru/function.odbc-pconnect.php надо будет посмотреть (на работе), держит ли хостинг эту библиотеку |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
bars80080, можно сохранять его в rft. rtf - обычный текстовый формат. Его же и выдавать юзеру.
Текст туда вставляется как-то так (кодировка файла cp1251)
Если отметить характерными закорюками места вставки полей шаблона, то особых проблем не должно быть.Разве что файл окажется большой... Добавлено через 4 минуты Да! для разметки "полей шаблона" разумно использовать русские буквы, чтобы случайно не получить "английский"язык в этом текстовом поле. Немного больше геморроя с заменой,зато меньше проблем в реальной жизни. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Нет не это. Имелось в виду использование Word в качестве сервера приложения. И через тот же OLEAutomation выполнять требуемое действие Добавлено @ 15:56 http://php.net/manual/ru/book.com.php Или вот так Это сообщение отредактировал(а) Fortop - 22.12.2012, 15:57 -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
но это же на линуксовом сервере не идёт? также использовать rtf нельзя из-за потери разных разностей в тексте в принципе, моя мысль всё пытается решить задачу в лоб (она ведь изначально не требует высокого пилотажа): к примеру, на месте вставляемого значения находится строка с фиксированной длинной ПЕРЕМЕННАЯ_ДЛЯ_ЗАМЕНЫ_ЮРИДИЧЕСКИЙ_АДРЕС___________ещё-сколько-то-символов-для-дозаполнения-по-принципу-CHAR, которую мы просто заменяем простым str_replace но пока что-то не удаётся осилить перевод. латинские символы вроде удаётся так менять, дополняя каждый символ кодом \x00. кириллица же завершается \x04 , однако, сопоставить коды самих символов не получается. к примеру, символ "Ю" имеет код DE (222), но в winhex-редакторе он обозначен двумя байтами 2E 04, в то время как "U" имеет код 55 (85), а в редакторе 55 00 как их сопоставить? |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
в итоге, в рамках желаемого получился сий костыль:
вроде работает. заменяет в фразы DEFINE_JURE_ADRES и DEFINE_JURE_RS в тексте на подставку. если новая фраза длиннее прежней, то новая обрезается под размер прежней. если наоборот, то новая фраза дополняется пробелами меня в принципе так устраивает, хотя конечно рад был бы разрешить этот момент лучше. но боюсь, тут уже не обойтись без перестройки всего текста (видимо, где-то прописываются контрольные суммы длин строк) |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
оказывается, почти сделал как надо, просто не допёр, что это уже и есть решение.
заменяю я ведь значениями из БД, а там они всё равно хранятся в полях ограниченной длины. осталось только все искомые размечать на ширину полей (там преимущественно varchar(255)), а дополнять пустоты не пробелами "\x20\x00", а пустыми символами "\x16\x00", в итоге в документе строки выглядят короткими. тогда задача решена |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |