Добрый день!
Отобразить содержимое файлов Word или PDF на веб-странице с максимальным сохранением оригинала — сложная задача, особенно если вам нужно, чтобы текст оставался доступным для манипуляций с помощью JavaScript. Вот несколько вариантов выполнения этой задачи с использованием PHP и других технологий.
### 1. Обработка файлов Word (DOCX)
Для работы с файлами Word в формате DOCX можно использовать библиотеку PHP `PhpOffice/PHPWord`. Эта библиотека позволяет извлекать текст и методы для обработки документов. Однако результат может потребовать дополнительной стилизации на стороне клиента.
#### Установка библиотеки
Установите библиотеку с помощью Composer:
```bash
composer require phpoffice/phpword
```
#### Пример кода для отображения содержимого документа:
```php
require 'vendor/autoload.php';
use PhpOffice\PhpWord\IOFactory;
// Путь к файлу
$file = 'path/to/your/file.docx';
// Загружаем файл
$phpWord = IOFactory::load($file);
// Получаем текст
$textrun = "";
foreach ($phpWord->getSections() as $section) {
foreach ($section->getElements() as $element) {
if (method_exists($element, 'getText')) {
$textrun .= $element->getText() . "<br />";
}
// Обработка таблиц и других элементов может быть добавлена здесь
}
}
// Отображаем на странице
echo "<div id='document-content'>{$textrun}</div>";
```
### 2. Обработка PDF-файлов
Для работы с PDF-файлами подойдёт библиотека `smalot/pdfparser`, которая может извлекать текст из PDF-документов.
#### Установка библиотеки
Установите библиотеку с помощью Composer:
```bash
composer require smalot/pdfparser
```
#### Пример кода для извлечения текста:
```php
require 'vendor/autoload.php';
use Smalot\PdfParser\Parser;
// Путь к PDF-файлу
$file = 'path/to/your/file.pdf';
// Создаем парсер
$parser = new Parser();
$pdf = $parser->parseFile($file);
// Получаем текст
$text = $pdf->getText();
// Отображаем текст на странице
echo "<div id='document-content'>{$text}</div>";
```
### 3. Стилизация и доступ через JavaScript
Для стилизации текста и добавления интерактивности на страницу можно использовать стандартные HTML и CSS:
```html
<style>
#document-content {
font-family: Arial, sans-serif;
line-height: 1.6;
}
</style>
<div id="document-content">...</div>
```
Если нужно выделять текст или оборачивать его в теги, можно использовать JavaScript. Например, с использованием библиотеки `rangy`:
```html
<script src="https://cdnjs.cloudflare.com/ajax/libs/rangy/1.3.0/rangy-core.min.js"></script>
<script>
// Пример выделения текста
function highlightSelectedText() {
const selection = rangy.getSelection();
if (selection.rangeCount > 0) {
const range = selection.getRangeAt(0);
const span = document.createElement('span');
span.className = 'highlight'; // CSS-класс для выделения
range.surroundContents(span);
}
}
</script>
```
### Заключение
Используя вышеописанные подходы, вы сможете извлечь текст и структуру из файлов Word и PDF, отобразив их на веб-странице. Однако учтите, что текущие библиотеки могут не всегда точно переносить структуру, такую как таблицы, стили и т.д., и может потребоваться дополнительная ручная работа для этого.
Если сохранение полной структуры документа критично, рассмотрите использование таких решений, как Microsoft Graph API, чтобы отображать контент в PowerPoint или Word в ваших приложениях, но это может потребовать больше усилий в плане аутентификации и настройки API.