exampleCyrillicText
   "Write the method onto a PDF document using different fonts"
   "PDFPrinter exampleCyrillicText."

   | printer |
   printer := Printer startPrintJobNamed: 'Cyrillic.pdf'.
   [printer printBlock: [
      | text font device gc code titleText bodyText |
      titleText := 'Режиссер Дэвид Финчер получил разрешение
экранизировать историю знаменитой социальной сети ?
Facebook. Снимать ленты будут на киностудии
Columbia Pictures, сообщает WorstPreviews.'.

      bodyText := 'Финчер планирует приступить к съемкам в конце 2009 года.
Бюджет проекта составит $47 млн.

Ранее сообщалось, что сюжет ленты охватит период с 2004 года,
когда сеть была создана в кампусе Гарвардского университета Марком
Цукербергом, до того момента, как она обзавелась 200 миллионами
пользователей по всему миру.

Сегодня состояние Цукерберга равно почти $3 млрд., а стоимость
Facebook ? $16 млрд. Отметим, что основателю сети сейчас всего 25 лет.'.

      device := printer graphicsDevice.
      gc := printer graphicsContext.

      Locale set: #'ru_RU.CP1251'.
      code := titleText collect: [:char |
         Locale current defaultStreamEncoder decode: char asInteger].
      font := FontDescription new pixelSize: 12; boldness: 1.0.
      font family: 'helvetica'; italic: false.
      font encoding: 'ms_cp_1251'.
      text := ComposedText
            withText: code
            style: (TextAttributes defaultFontQuery: font copy).
      text newGraphicsDevice: device.
      text displayOn: gc at: 20 @ 20.

      code := bodyText collect: [:char |
         Locale current defaultStreamEncoder decode: char asInteger].
      font := FontDescription new pixelSize: 12; boldness: 0.5.
      font family: 'helvetica'; italic: false.
      font encoding: 'ms_cp_1251'.
      text := ComposedText
            withText: code
            style: (TextAttributes defaultFontQuery: font copy).
      text newGraphicsDevice: device.
      text displayOn: gc at: 20 @ 100]]
         ensure: [Locale set: #'de_DE.CP1252']