libreoffice — подсчитывает символы в DOC и DOCX с помощью PHP LINUX

Сложение:
Я обнаружил, что самый близкий метод подсчета строк — с помощью команды linux «antiword» для файлов DOC, antiword возвращает текстовую версию DOC; в то время как для DOCX используется вызов, который извлекает контент из DOCX и проталкивает данные через ту же текстовую функцию, что и антислово.

Проблема возникает сейчас, когда у вас есть таблицы в файле, антислово добавляет много пробелов.

===

У меня есть скрипт, который определяет количество символов в файлах DOCX:

$zip = new ZipArchive;$striped_content = '';
$content = '';

if(!$filename || !file_exists($filename)) return false;

$zip = zip_open($filename);

if (!$zip || is_numeric($zip)) return false;

while ($zip_entry = zip_read($zip)) {

if (zip_entry_open($zip, $zip_entry) == FALSE) continue;

if (zip_entry_name($zip_entry) != "word/document.xml") continue;

$content .= zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));

zip_entry_close($zip_entry);
}// end while

zip_close($zip_entry);

$content = str_replace('</w:r></w:p></w:tc><w:tc>', " ", $content);
$content = str_replace('</w:r></w:p>', "\r\n", $content);
$striped_content = trim(strip_tags($content));

Если у меня есть файл doc, я в основном конвертирую файл в docx, используя командную строку LibreOffice, а затем запускаю скрипт выше.

Проблема в том, что я не могу узнать, сколько слов в файле есть в области «HEADER» и «FOOTER». Как это можно сделать?

Мой сервер работает:
PHP 5.3
LibreOffice
CentOS 6.5

Я не уверен, какую другую информацию мне нужно предоставить,
Спасибо за ваши ответы перед рукой.

постскриптум

Я попытался преобразовать doc и docx в txt, но в результате области «HEADER» и «FOOTER» не были сохранены в документе txt

Также самое близкое решение, которое я нашел:
https://github.com/nagilum/DOCx

Библиотека разбивает весь файл DOCX, и у вас есть заголовок, содержимое и нижний колонтитул в виде обычного текста, и я могу попробовать рассчитать количество слов из их. Однако libreoffice, похоже, иногда плохо конвертирует файлы в docx, и файл docx с 1 страницей может иметь 2 страницы в docx после преобразования.

2

Решение

Любой файл * .docx — zip-архив. Он состоит app.xml файл, где вы можете найти узел:

<Characters>8657</Characters>

и извлечь значение с помощью регулярного выражения

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector