Hi, In SBCL result of the expression (type-of (code-char 244)) is extended-char, so pdf-string can not handle unicode strings. See my patch.
Moskvitin Andrey --- diff --git a/pdf.lisp b/pdf.lisp index 16d8f6f..b54b5a6 100644 --- a/pdf.lisp +++ b/pdf.lisp @@ -235,21 +235,20 @@ (setq unicode (notevery #+lispworks #'lw:base-char-p #-lispworks (lambda (char) (<= (char-code char) 255)) string))) - (with-output-to-string (stream nil :element-type 'base-char) - (write-char #\( stream) - (when unicode ; write the Unicode byte order marker U+FEFF - (write-char #.(code-char 254) stream) (write-char #.(code-char 255) stream)) + (with-output-to-string (stream nil :element-type 'base-char) + (if unicode + (write-string "<FEFF" stream) + (write-char #\( stream)) (loop for char across string for code = (char-code char) if unicode - do (write-char (code-char (ldb (byte 8 8) code)) stream) ; hi - (write-char (code-char (ldb (byte 8 0) code)) stream) ; lo + do (format stream "~4,'0x" code) else if (> code 255) do (write-char (code-char (ldb (byte 8 0) code)) stream) ; lo else do (case char ((#\( #\) #\\) (write-char #\\ stream))) (write-char char stream)) - (write-char #\) stream)))) + (write-char (if unicode #\> #\)) stream)))) (defmacro with-outline-level ((title ref-name) &body body) `(unwind-protect
_______________________________________________ cl-pdf-devel site list cl-pdf-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/cl-pdf-devel