3.32. Texte - senkrecht, schräg und überkopf

Überblick

Es gibt Dokumente, die tragen am Rand eine senkrechte Textmarke, die in weiteren Schritten der Verarbeitung zur Identifikation dient. Auch senkrechte Tabellenüberschriften treten gelegentlich in Dokumenten auf.

Um Text zu testen, der aus der normalen Position um einen beliebigen Winkel (-180 bis +180 Grad) gedreht wurde, stehen die gleichen Funktionen zur Verfügung, wie auch für normalen Text.

Beispiel

Das Beispieldokument enthält die zwei senkrechten Texte:

Mit den richtigen Werten für einen Seitenausschnitt sieht der Test folgendermaßen aus:

// Comparing upright text in a part of a PDF page
@Test
public void hasRotatedTextInRegion() throws Exception {
  String filename = "verticalText.pdf";
  
  int leftX  =  40;
  int upperY =  45;
  int width  =  45;
  int height = 110;
  PageRegion pageRegion = new PageRegion(leftX, upperY, width, height);

  String textBottomToTop = "Text from bottom to top.";
  String textTopToBottom = "Text from top to bottom.";
  AssertThat.document(filename)
            .restrictedTo(FIRST_PAGE)
            .restrictedTo(pageRegion)
            .hasText()
            .containing(textBottomToTop, WhitespaceProcessing.IGNORE)
            .containing(textTopToBottom, WhitespaceProcessing.IGNORE)
  ;
}

Senkrechter Text wird vom Parser mit vielen Zeilenumbrüchen gelesen. Deshalb ist es unbedingt nötig, WhitespaceProcessing.IGNORE zu benutzen.

Beachten Sie: Es handelt sich bei diesem kopfwärts gestellten Text immer noch um Text mit der Laufrichtung LTR (left-to-right). Texte mit der Laufrichtung RTL (right-to-left) werden von PDFUnit auch unterstützt. Beispiele dafür zeigt Kapitel 3.33: „Texte - von rechts nach links (RTL)“.