--- /dev/null
+USING: io.files kernel math namespaces pdf pdf.libhpdf prettyprint sequences ;
+IN: pdf.tests
+
+SYMBOL: font
+
+SYMBOL: width
+SYMBOL: height
+SYMBOL: twidth
+
+: font-list ( -- seq ) {
+ "Courier"
+ "Courier-Bold"
+ "Courier-Oblique"
+ "Courier-BoldOblique"
+ "Helvetica"
+ "Helvetica-Bold"
+ "Helvetica-Oblique"
+ "Helvetica-BoldOblique"
+ "Times-Roman"
+ "Times-Bold"
+ "Times-Italic"
+ "Times-BoldItalic"
+ "Symbol"
+ "ZapfDingbats"
+} ;
+
+[
+ ! HPDF_COMP_ALL set-compression-mode
+
+ ! HPDF_PAGE_MODE_USE_OUTLINE set-page-mode
+
+ ! Add a new page object
+ add-page
+
+ get-page-height height set
+
+ get-page-width width set
+
+ ! Print the lines of the page
+ 1 set-page-line-width
+
+ 50 50 width get 100 - height get 110 - page-rectangle
+
+ page-stroke
+
+ ! Print the title of the page (with positioning center)
+ "Helvetica" f get-font font set
+
+ font get 24 set-page-font-and-size
+
+ "Font Demo" page-text-width twidth set
+
+ [
+ width get twidth get - 2 / height get 50 - "Font Demo" page-text-out
+
+ ] with-text
+
+ ! Print subtitle
+ [
+ font get 16 set-page-font-and-size
+
+ 60 height get 80 - "<Standard Type1 font samples>" page-text-out
+
+ ] with-text
+
+ ! Print font list
+ [
+ 60 height get 105 - page-move-text-pos
+
+ SYMBOL: fontname
+
+ font-list [
+
+ fontname set
+
+ fontname get f get-font font set
+
+ ! print a label of text
+ font get 9 set-page-font-and-size
+
+ fontname get page-show-text
+
+ 0 -18 page-move-text-pos
+
+ ! print a sample text
+ font get 20 set-page-font-and-size
+
+ "abcdefgABCDEFG12345!#$%&+-@?" page-show-text
+
+ 0 -20 page-move-text-pos
+
+ ] each
+
+ ] with-text
+
+ "font_test.pdf" temp-file save-to-file
+
+] with-pdf