Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 10 Nächste Version anzeigen »

Problem:

Die Zoom-to-Fit-Buttons funktionieren nicht, sind aber trotzdem aktiviert. Andere Zoom-Funktionalitäten sind funktionsfähig (z. B. der Zoom auf einen festen Prozentwert).

Gleiches gilt für das Zoom Snap-In:

Möglicher Grund:

Presentation Rules sind nicht gesetzt.

Beim Aufbau der GUI muss z. B. folgendes Code-Fragment ausgeführt werden:

// add presentation rules
final List<PresentationRule> rules = mainViewer.getPageView().getPresentationRuleManager().getRules();
rules.add(new SwitchToSinglePageOnFit());
rules.add(new ApplyDynamicZoomRule());

Anwendungsbeispiel: JadiceDemoApplication.initialiseGUI()

Hintergrundinformationen

Die Instanzen von PresentationRule erlauben das Anpassen der Seitenanzeige als Reaktion auf verschiedene Events. Konkret handelt es sich dabei um die folgenden vier Events, die in jeweils eigenen Methoden-Implementationen behandelt werden können:

  • Änderung der RenderSettings. Diese legen fest, wie eine Seite gerendert werden soll. Das beinhaltet zum Beispiel den Zoom-Faktor.
  • Größenänderung der PageView-Komponente (z. B. durch Resizing des JFrame der Applikation)
  • Seitenwechsel innerhalb des Dokuments (Achtung: Dies beinhaltet nicht den Dokumentwechsel.)
  • Änderung des Seitenlayouts

Das Setzen von PresentationRules erlaubt somit vielfältige Anpassungen des Verhaltens der Seitenanzeige. Die oben genannten Implementierungen haben folgende Aufgaben:

  • com.levigo.jadice.swing.pageview.SwitchToSinglePageOnFit
    • Wechselt bei Auswahl eines Dynamic Zoom Mode (ein ›Anpassen‹-Modus) auf das Einzelseiten-Layout (siehe auch Hinweis unten)
  • com.levigo.jadice.swing.pageview.ApplyDynamicZoomRule
    • Sorgt dafür, dass die Auswahl eines Dynamic Zoom Mode (ein ›Anpassen‹-Modus) auch tatsächlich dazu führt, dass die Seitenanzeige angepasst wird. So wird beispielsweise bei Seitenwechsel erneut berechnet, wie groß die Seite dargestellt werden muss, um nach der festgelegten Vorgabe anzupassen, z. B. "Breite anpassen".

Dynamic Zoom Modes 

  • ZOOM_MODE_FIT_BOTH
  • ZOOM_MODE_FIT_WIDTH
  • ZOOM_MODE_FIT_HEIGHT

stehen nur im Einzelseiten-Layout zur Verfügung. Daher muss zur korrekten Verwendung der Fit Funktionen beide PresentationRules com.levigo.jadice.swing.pageview.SwitchToSinglePageOnFit und com.levigo.jadice.swing.pageview.ApplyDynamicZoomRule gesetzt sein.

  • Keine Stichwörter