#lang racket/base (require pitfall/pdftest) (define (proc doc) ;; curved path as bezier (send* doc [moveTo 0 20] [lineTo 100 160] [quadraticCurveTo 130 200 150 120] [bezierCurveTo 190 -40 200 200 300 150] [lineTo 400 90] [stroke]) (send* doc [translate 0 200]) ;; triangle (send* doc [polygon '(100 0) '(50 100) '(150 100)] [stroke]) ;; dashed circle (send* doc [save] [translate 200 0] [circle 100 50 50] [dash 5 (hash 'space 10)] [stroke] [restore]) ;; filled circle (send* doc [save] [translate 400 0] [circle 100 50 50] [lineWidth 3] [fillOpacity 0.8] [fillAndStroke "red" "#900"] [restore]) (send* doc [translate 0 200]) ;; these examples are easier to see with a large line width (send* doc [lineWidth 25]) ;; line cap settings (send* doc [lineCap 'butt] [moveTo 50 20] [lineTo 100 20] [stroke] [lineCap 'round] [moveTo 150 20] [lineTo 200 20] [stroke]) ;; square line cap shown with a circle instead of a line so you can see it (send* doc [lineCap 'square] [moveTo 250 20] [circle 275 30 15] [stroke]) ;; line join settings (send* doc [lineJoin 'miter] [rect 50 100 50 50] [stroke] [lineJoin 'round] [rect 150 100 50 50] [stroke] [lineJoin 'bevel] [rect 250 100 50 50] [stroke])) (define-runtime-path this "test2rkt.pdf") (make-doc this #f proc) (define-runtime-path that "test2crkt.pdf") (make-doc that #t proc)