Pregunta

Estoy trabajando en un sitio de almacenamiento de información para la prevención del VIH. Muchos colaboradores publicarán artículos a través de una GUI de tinyMCE.

Los diseñadores gráficos, por supuesto, quieren controlar las longitudes de las páginas. Les gustaría la paginación automática basada en la altura del contenido de la página.

¿Alguien ha visto el código AJAX para gestionar esto?

¿A menos que alguien haya visto un código PHP que pueda hacer un recuento de caracteres y una expresión regular para evitar la división de palabras o etiquetas?

Cualquier enlace muy apreciado!

¿Fue útil?

Solución

Si no es necesario que sea exacto, no hay razón por la que no pueda usar una función simple de conteo de palabras para determinar un lugar apropiado para romper la página (supongo que en el párrafo más cercano). Podría ir tan lejos como para reducir las palabras por página en función de si hay imágenes en la publicación, incluso teniendo en cuenta el tamaño de las imágenes.

Aunque podría ser muy rápido, creo que la mejor manera de hacerlo es permitirles configurar manualmente los separadores de página con una etiqueta en el artículo que puedes analizar. Algo como [salto de página] es bastante sencillo y obtendrás saltos de página mucho más lógicos y legibles que cualquier otra solución automatizada.

Otros consejos

No solo tiene que preocuparse por el recuento de caracteres, también debe preocuparse por las alturas de las imágenes si hay imágenes o cualquier otro tipo de objetos incrustados en sus páginas que puedan alcanzar la altura. El recuento de caracteres tampoco le dará una idea de la estructura del párrafo (un párrafo largo con más caracteres que una página con muchos párrafos puede ser más corto).

Si está dispuesto a usar JavaScript, esa podría ser la solución ideal, publique el artículo completo en el cliente y deje que JavaScript maneje la paginación. Desde el cliente se pueden detectar alturas de imagen y objeto. Podría usar PHP para colocar marcadores sobre dónde cree que deberían estar las páginas, y luego usar JavaScript para que esto suceda. A menos que las páginas sean muy largas, no creo que deba realizar varias xmlHttpRequests (AJAX).

Por solo una solución PHP directa también es simple, pero probablemente no sea lo ideal, ya que no se trata de gestionar el número de filas. Podría usar una variable GET para determinar dónde se encuentra en la página.

Aunque esta podría no ser la respuesta exacta que estás buscando, pero debes asegurarte de que tu sitio no tenga una altura fija. Los anchos flexibles son realmente agradables, pero no tan críticos como la altura.

Especialmente para una causa como esta y un sitio con mucho contenido; Es justo exigir alturas flexibles.

Como lo mencionó apphacker, realmente no puedes detectar la altura desde PHP y estás atascado con javascript. Si está absolutamente atascado con la paginación, es probable que sea mejor dejar que los autores de su contenido decidan cuándo interrumpir la página, de modo que la divida en una sección real, en lugar de en la mitad de una palabra, frase, etc.

Editar: la usabilidad debe dictar el diseño, no al revés. Lo estás haciendo mal;)

Una buena paginación no es una tarea simple. Eso no es una simple cuestión de codificación. La investigación científica de Plass (1981) demostró que el salto de página óptimo es, en general, NP-duro. Debería preocuparse por las figuras flotantes, los saltos de línea, los diferentes estilos de fuente, etc.

Y lo único que un motor HTML puede ayudarlo es analizar una página en un árbol DOM. ¿Qué pasa con los tamaños? Sí, podría tener ancho de fuente y altura de fuente, márgenes y rellenos, tamaños de imagen. Pero eso es todo. Todo el diseño está sobre tus hombros. Y haciéndolo en javascript ... meh ...

Por lo tanto, la única solución factible de la paginación automática de altura fija sería un servidor. PrinceXML es actualmente el mejor convertidor de HTML2PDF. Pero cuesta mucho.

Si eres bueno con diferentes alturas de páginas, podrías usar la sugerencia de epalla. Pero esto tampoco es tan simple como parece.

Algunas referencias para paginación:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top