Вставить данные в .docx и .odt в PHP - PullRequest
0 голосов
/ 07 октября 2011

Вставляем данные из базы данных в текстовый документ (Word 2007). В нем есть таблицы, и каждый набор данных должен быть на отдельной странице.
Прямо сейчас PHPWord вполне удовлетворит наши потребности. Но некоторые наши клиенты используют OpenOffice.org, а PHPWord, похоже, не создает на 100% правильный Word-Document. Word может справиться с этими ошибками, но OpenOffice не может.
Итак, мой вопрос: есть ли другая хорошая PHP-библиотека, которая создает документы, которые могут читать оба редактора, или лучше использовать библиотеку для Word, а другую - для OpenOffice.org? (Для OpenOffice.org я бы использовал http://www.odtphp.com/). Я бы предпочел использовать одну библиотеку, которая создает документ Word.

1 Ответ

0 голосов
/ 14 октября 2011

Хорошо, мы нашли решение. Я напишу это здесь на случай, если у кого-то возникнет такая же проблема. Файлы были неправильно отформатированы в OpenOffice.org, потому что PhpWord форматирует xml с пробелами и символами новой строки. Word удаляет эти строки и показывает документ, каким он должен быть, но OOo вставляет новую строку для каждой новой строки в документе xml-doc. Изменение строк 79 и 84 внутри Shared / XMLWriter.php добилось цели.

// Set default values
// proposed to be false in production version
$this->_xmlWriter->setIndent(true);
//$this->_xmlWriter->setIndent(false); 

// Set indent
// proposed to be '' in production version
$this->_xmlWriter->setIndentString('  ');
//$this->_xmlWriter->setIndentString('');
...