Разбивка текста из файла XML на страницу HTML - PullRequest
0 голосов
/ 11 июля 2010

O.K. поэтому я занимаюсь разработкой веб-сайта для моих художественных произведений. Я помещаю все свои документы в файлы XML, извлекаю и анализирую их с сервера с помощью PHP и отображаю их на странице. Вы можете посетить страницу здесь для примера.

Как следует из фонового изображения, я хотел бы взять текст и разбить его на два столбца (с текстом из первого разлива во второй), а затем разрешить разбивку по страницам так, чтобы прокрутка не нужна. Другими словами, я хотел бы, чтобы текст читался как книга с разбивкой по страницам в зависимости от длины тела XML-документа.

Я бы хотел, чтобы это было сделано на стороне сервера с использованием PHP или чего-то подобного. Есть ли способ сделать это с помощью таблицы стилей xsl или сценария на стороне сервера? Я искал повсюду и, похоже, ничего не нашел.

Любая помощь приветствуется.

г. Мутант

1 Ответ

1 голос
/ 11 июля 2010

В целом это удивительно сложная проблема, с которой у вас не будет проблем, если вы попытаетесь сделать это на сервере. Проблема с разбиением на страницы HTML-текста заключается в том, что разрывы страниц полностью зависят от клиента. Сервер не знает разрешения экрана клиента, выбора шрифта или размера окна, и кроме самого текста они являются зависимыми переменными для проблемы.

Я был бы удивлен, если бы на данный момент не было какой-либо библиотеки jQuery, которая просто делает это, но когда мне пришлось реализовать ее самостоятельно около 7 лет назад, вот такой подход я выбрал:

Создать div для каждого столбца. Каждый из них содержит весь текст документа. Стиль div s с фиксированной высотой строки. Поместите нижний столбец div в z-порядке документа. Теперь вы можете разметить оставшуюся часть страницы, оставив в макете дыры известного размера, через которые могут показываться div s, и манипулируя вертикальным положением каждого div, вы можете контролировать, какая строка появляется первой внутри данной дыры.

Затем вы можете позволить клиенту манипулировать размером шрифта, и пока вы пересчитываете высоту отверстий и затем правильно перемещаете div, все будет работать волшебным образом.

В HTML5 могут быть способы сделать это проще; Я бы определенно посмотрел на это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...