2009-07-31 11 views
2

Das Projekt wird mit CakePHP entwickelt.Seitenumbruch für ein Dokument mit variablem Inhalt

Die Seite ist von einem Nachrichtenfeedartikel.

Die Seitennummerierung ist einfach, wenn Sie (x) Anzahl der Datensätze pro Seite oder (x) Anzahl der Bilder pro Seite zurückgeben oder sogar die Anzahl der Wörter/Absätze/Zeichen begrenzen möchten, aber was, wenn Sie paginieren möchten die visuelle Länge der Seite?

Das Problem trat auf, weil einige Artikel eine große Menge an Text und eine große Menge an Bildern enthalten. Ich würde gerne wissen, wie Sie die Seitennummerierung entwickeln würden, wenn der Inhalt vollständig dynamisch ist. Damit meine ich, es könnte 100% Text, Text und 3 Bilder, 10 Bilder usw. sein.

Code wird geschätzt, aber selbst ein Konzept wäre von Vorteil, danke!

+0

Also? Wie hast du es umgesetzt? –

Antwort

0

Ich weiß nicht, CakePHP, aber, wie wäre es mit der Anzahl der Zeichen?

Nehmen wir an, Sie haben 10.000 Zeichen in dem Artikel und Sie entscheiden, dass jede Seite nicht viel mehr als 500 Wörter haben sollte. Bei einer durchschnittlichen Wortlänge von 5 Zeichen gehen Sie zum Zeichen 500 * 5 = 2500, suchen Sie den nächsten schließenden Absatz und übernehmen Sie diesen Punkt als nächste Seite. Sie könnten das gleiche Konzept mit Bildern verwenden, aber unter Berücksichtigung der Höhe der Bilder ...

Klingt gut?

+1

Sie können auch den durchschnittlichen Bereich, den ein Charakter verwendet, berücksichtigen, da Sie den genauen Bereich, den Ihre Bilder verwenden, herausfinden und wissen, wie viel "Fläche" jede Seite verwenden soll. Wenn Sie den Bildbereich von Ihrem gewünschten Bereich subtrahieren, dann teilen Sie durch den Zeichenbereich, Sie wissen (grob), wie viele Zeichen Sie möchten. – deizel

0

Da wir die Breite der Seite und die Höhe des Bildes kennen und wir konnten die Pixelhöhe des Textes annähern.

Wir haben dann die Höhe der Bilder, Leerzeichen und Text, und subtrahiert das von der zulässigen Gesamthöhe innerhalb eines bestimmten Prozentsatzes des Fehlers, das ist so, dass es ein Bild nicht auf die falsche Seite nur weil die letzten 10px überschreiten das Limit.

Wir haben auch eine Möglichkeit, Elemente auf die vorherige Seite zu erzwingen, falls ein Bild oder ein Satz auf die nächste Seite geschoben wird, die nicht das richtige Aussehen hat.

Verwandte Themen