Biner PostScript 50, 113 ASCII
Ini menggunakan output grafis. Hexdump program menggunakan token biner:
$ hexdump -C textRect_binary.ps
00000000 74 5b 30 20 39 5b 74 92 62 34 92 36 92 38 92 10 |t[0 9[t.b4.6.8..|
00000010 32 92 19 5d 7b 92 2c 7b 32 92 19 7d 92 83 92 3e |2..]{.,{2..}...>|
00000020 92 6e 7d 92 49 5d 39 20 39 92 6b 91 c7 39 92 8e |.n}.I]9 9.k..9..|
00000030 92 c3 |..|
00000032
Unduh untuk mencobanya . Menggunakan Ghostscript, teks yang akan di-render dapat dikirimkan ke program sebagai berikut:
gs -st=helloworld textRect_binary.ps
Output grafis terlihat seperti ini:

Kode yang sama menggunakan token ASCII terlihat seperti ini:
t[0 9[t length
4 div dup
ceiling
2 copy]{cvi{2 copy}repeat
exch neg}forall]9 9 moveto/Courier 9 selectfont
xyshow
Strategi ini digunakan xyshowuntuk menentukan di mana kita bergerak setelah menunjukkan setiap karakter sebelum menunjukkan karakter berikutnya. Kita mulai di sudut kiri bawah, bergerak searah jarum jam, yaitu pertama ke atas, lalu ke kanan, lalu ke bawah lalu ke kiri. Kami selalu memindahkan 9 unit, jadi pertama-tama kami memiliki gerakan relatif 0 9, lalu 9 0, lalu 0 -9, kemudian -9 0. Kita bisa mendapatkan dari sepasang angka-angka ini ke yang berikutnya dengan urutan exch neg.
Kita perlu membangun array untuk xyshowyang menyimpan pasangan angka ini, satu pasangan untuk setiap karakter. Ini berarti, jika kita memiliki helloworldstring sebagai contoh, yang memiliki 10 karakter, kita ingin naik dua kali, lalu ke kanan tiga kali, lalu ke bawah dua kali dan ke kiri tiga kali. Kami mendapatkan nilai-nilai ini (dua dan tiga) dengan membagi panjang string dengan 8, sekali membulatkan ke lantai, satu ke langit-langit.
Jadi, kami menyalin 0 9dua kali, lalu beralih ke koordinat x / y relatif menggunakan exch neg, salin tiga kali dan seterusnya.
Kode yang dikomentari ini menunjukkan apa yang terjadi pada stack:
t[0 9 % t [ 0 9
[t length % t [ 0 9 [ length
4 div dup % t [ 0 9 [ length/4 length/4
ceiling % t [ 0 9 [ length/4=height width
2 copy] % t [ 0 9 [height width height width]
{%forall % t [ 0 9 ... x y height_or_width
cvi % t [ 0 9 ... x y height_or_width_integer
{2 copy} % t [ 0 9 ... x y height_or_width_integer {2 copy}
repeat % t [ 0 9 ... x y .. x y
exch neg % t [ 0 9 ... x y .. y -x
}forall] % t [0 9 ... -9 0]
9 9 moveto/Courier 9 selectfont
xyshow