Frage

Ich arbeite an einem Informationslagerstandort für die HIV-Prävention. Viele Mitarbeiter werden Artikel über eine tinyMCE GUI veröffentlichen.

Die Grafikdesigner, natürlich wollen die Kontrolle über Seitenlängen. Sie würden automatische Paginierung auf der Höhe von Inhalten auf der Seite basierend mögen.

Jeder AJAX-Code gesehen, dies zu verwalten?

Barring, dass jeder PHP-Code zu sehen, die eine Zeichenzahl und einen Blick hinter regex tun können Splitting Wörter oder Tags zu vermeiden?

Alle Links zu schätzen!

War es hilfreich?

Lösung

Wenn es braucht nicht genau zu sein gibt es keinen Grund, warum Sie nicht eine einfache Wortzählung Funktion können einen geeigneten Ort, um zu bestimmen, die Seite zu brechen (am nächsten Absatz nehme ich an). Man könnte sogar so weit geht die Worte pro Seite zu reduzieren, je nachdem, ob es Bilder in der Post, auch die Größe der Bilder zu berücksichtigen.

Das allerdings schnell hässlich bekommen konnte, ich denke, der beste Weg, es zu tun ist, damit sie manuell die Seitenteiler mit einem Tag in dem Artikel festgelegt, die Sie analysieren kann. So etwas wie [Seitenumbruch] ist ziemlich einfach und Sie werden viel logische und lesbare Seitenumbrüche erhalten als jede automatisierte Lösung würde erreichen.

Andere Tipps

Sie haben nicht nur über Zeichenzahl zu kümmern, müssen Sie auch über Bildhöhen sorgen, wenn es Bilder oder jede andere Art von eingebetteten Objekten in Ihren Seiten, die auf der Höhe nehmen. Zeichenzählung wird auch Sie nicht eine Idee von Absatzstruktur geben (einen einzigen langen Absatz mit mehr Zeichen als eine Seite mit vielen Absätzen könnte kürzer sein).

Wenn Sie bereit sind, JavaScript zu verwenden, das könnte die ideale Lösung sein, den gesamten Artikel an den Client schreiben und lassen Sie JavaScript, um die Paginierung behandeln. Vom Client können Sie Bild und Objekthöhen erkennen. Sie könnten PHP-Marker zu platzieren, wo Sie denken, die Seiten sein sollte, und dann JavaScript verwenden, um sie geschehen. Es sei denn, die Seiten sind sehr lang Ich glaube nicht, Sie werden mehrere XMLHttpRequests (AJAX) tun müssen.

Für nur eine gerade PHP-Lösung ist auch einfach, aber wahrscheinlich nicht ideal, da Sie nicht mit einer Angelegenheit der Verwaltung Reihe zählt zu tun. Sie könnten einen GET-Variable verwenden, um zu bestimmen, wo Sie in der Seite sind.

Auch wenn dies vielleicht nicht die genaue Antwort, die Sie suchen, aber Sie sollten wirklich Ihre Website stellen Sie sicher, nicht eine feste Höhe haben. Flexible Breite ist wirklich nett, aber nicht so kritisch wie die Höhe.

Vor allem für eine Sache wie diese, und ein Gehalt lastigen Website; es ist fair flexible Höhen erforderlich ist.

Wie apphacker erwähnt, können Sie die Höhe nicht wirklich erkennen, aus PHP und Sie sind irgendwie stecken mit Javascript. Wenn Sie unbedingt mit Paging stecken, ist es wahrscheinlich besser, um Ihre Inhalte Autoren entscheiden zu lassen, wenn sie auf der Seite abbrechen, so dass Sie es auf einem echten Abschnitt brechen, statt Mitte Wort, Satz, usw.

Edit: Usability Design diktieren soll, nicht umgekehrt. Sie tun es falsch;)

Eine gute Paginierung ist keine einfache Aufgabe. Das ist nicht einfach eine Frage der Codierung. Die wissenschaftliche Forschung von Plass (1981) bewiesen, dass der optimalen Seitenumbruch im Allgemeinen NP-hart ist. Sie sollten über schwebende Figuren, Zeilenumbrüche verschiedene Schriftarten Sorge, etc.

Und das einzige, was ein HTML-Engine kann Ihnen helfen, eine Seite zu einem DOM-Baum ist das Parsen. Was zu unseren Größen? Ja können Sie Schriftbreite haben und Schrifthöhe, Margen und Polsterungen, Bildgrößen. Aber das ist alles. All das Layout ist auf den Schultern. Und es in Javascript zu tun ... meh ...

So ist die einzige machbare Lösung von automatischer fester Höhe Paginierung würde eine serverseitige sein. PrinceXML ist derzeit der beste HTML2PDF Konverter. Aber es kostet viel.

Wenn Sie mit unterschiedlichen Seitenhöhen gut sind, könnten Sie epalla Vorschlag verwenden. Aber das ist auch nicht so einfach wie es scheint.

Einige Referenzen für Paginierung:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top