Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> шаблоны в формате DOCX 
:(
    Опции темы
Gold Dragon
Дата 11.12.2014, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Раньше использовал форма RTF, но с ним трудно работать на уровне текстового редактор.. Решил попробовать DOCX (в принципе практически тоже самое что и ODT)

Замена шаблона достаточно проста... вот пример
Код

define('_LPATH_ROOT', __DIR__);

// Не портим шаблон
copy(_LPATH_ROOT . '/doc.docx', _LPATH_ROOT . '/doc1.docx');

$docxFile = _LPATH_ROOT . '/doc1.docx';

//Список параметров
$params = array(
    '[[qqq_1]]'    => 'Параметр 1',
    '[[q2]]' => 'Параметр 6',
    '[[q98]]'    => 'Параметр 2',
    '[[kjhs_jk_82]]'    => 'Параметр 3',
    '[[kjk]]'    => 'Параметр 4',
    '[[dkjklj2]]'    => 'Параметр 5',
    '[[as_qw]]' => 'Уч. № ___'
);

$zip = new ZipArchive();

if (!$zip->open($docxFile)) {
    die('Проблемы с открытием ZIP-файла');
}

$documentXml = $zip->getFromName('word/document.xml');
$documentXml = str_replace(array_keys($params), array_values($params), $documentXml);
$zip->deleteName('word/document.xml');
$zip->addFromString('word/document.xml', $documentXml);
$zip->close();

echo 'Всё ОК`и';


Никаких проблем нет, если текст в файле без форматирования (вернее то, что является тегами для замены). Но вот (тупой, убогий.....) word стремиться к бессконечному вставлению форматирования... 
Цитата

Вместо [b ]ТЕГ[/b ] всегда делает [b ]Т[/b ][b ]Е[/b ][b ]Г[/b ]... и даже [b ]Т[/b ][b ][/b ][b ]Е[/b ][b ][/b ][b ]Г[/b ][b ][/b ][b ][/b ][b ][/b ]
...из законов Мерфи  smile 


Суть вопроса простая.. Как избавиться от форматирования (не используя WORD конечно) и реально ли это вообще? Форматирование остального текста необходимо сохранить конечно же.

Это сообщение отредактировал(а) Gold Dragon - 11.12.2014, 21:27


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Aliance
Дата 12.12.2014, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: нет
Всего: 137



Код

$string = '[b ]Т[/b ][b ][/b ][b ]Е[/b ][b ][/b ][b ]Г[/b ][b ][/b ][b ][/b ][b ][/b ]';
$string = str_replace ('[b ][/b ]', '', $string);
$string = str_replace ('[/b ][b ]', '', $string);
var_dump( $string );

PM MAIL WWW ICQ Skype   Вверх
Gold Dragon
Дата 12.12.2014, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



а вот не всё так просто...

форматирование бывает начинается вне тега, а заканчивается в теге
Код

        <w:p w:rsidR="00FF38E3" w:rsidRPr="005355FE" w:rsidRDefault="005355FE">
            <w:r>
                <w:t>тек</w:t>
            </w:r>
            <w:bookmarkStart w:id="0" w:name="_GoBack"/>
            <w:r w:rsidRPr="005355FE">
                <w:rPr>
                    <w:b/>
                    <w:lang w:val="en-US"/>
                </w:rPr>
                <w:t>ст</w:t>
            </w:r>
            <w:proofErr w:type="spellEnd"/>
            <w:proofErr w:type="gramEnd"/>
            <w:r w:rsidRPr="005355FE">
                <w:rPr>
                    <w:b/>
                </w:rPr>
                <w:t xml:space="preserve"> [[</w:t>
            </w:r>
            <w:proofErr w:type="spellStart"/>
            <w:r w:rsidRPr="005355FE">
                <w:rPr>
                    <w:b/>
                </w:rPr>
                <w:t>t</w:t>
            </w:r>
            <w:bookmarkEnd w:id="0"/>
            <w:r>
                <w:t>eg</w:t>
            </w:r>
            <w:proofErr w:type="spellEnd"/>
            <w:r>
                <w:t>]] текст</w:t>
            </w:r>
        </w:p>

т.е. жирным выделено и часть слова и часть тега ( текст [[teg]] текст). Я не смогу удалить форматирование просто так только в теге, будет ошибка


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.1003 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.