J'essaie d'utiliser cl-pdf
pour une génération de PDF assez basique, mais je commence à me tromper sur les exemples (ce qui est pour le moins embarrassant).cl-pdf erreur de sortie
Quand je lance le premier exemple inclus dans le package
(defun example1 (&optional (file #P"/tmp/ex1.pdf")) (pdf:with-document() (pdf:with-page() (pdf:with-outline-level ("Example" (pdf:register-page-reference)) (let ((helvetica (pdf:get-font "Helvetica"))) (pdf:in-text-mode (pdf:set-font helvetica 36.0) (pdf:move-text 100 800) (pdf:draw-text "cl-pdf: Example 1")) (pdf:translate 230 500) (loop repeat 150 for i = 0.67 then (* i 1.045) do (pdf:in-text-mode (pdf:set-font helvetica i) (pdf:set-rgb-fill (/ (random 255) 255.0) (/ (random 255) 255.0) (/ (random 255) 255.0)) (pdf:move-text (* i 3) 0) (pdf:show-text "cl-typesetting")) (pdf:rotate 13))))) (pdf:write-document file)))
en exécutant (example1 #P"/home/inaimathi/Desktop/ex1.pdf")
il me donne cette erreur
#<SB-SYS:FD-STREAM for "file /home/inaimathi/Desktop/test.pdf" {CF9D931}> is not a binary output stream. [Condition of type SIMPLE-TYPE-ERROR] Restarts: 0: [ABORT] Exit debugger, returning to top level.
La même chose se produit quand je l'appelle (example1)
, ou quand je fais
(with-open-file (test-file #P"/home/inaimathi/Desktop/ex1.pdf" :direction :output :if-does-not-exist :create) (example1 test-file))
Enfin, si j'essaye
(with-open-file (test-file #P"/home/inaimathi/Desktop/ex1.pdf" :direction :output :if-does-not-exist :create :element-type '(unsigned-byte 8)) (example1 test-file))
Je reçois l'erreur
#<SB-SYS:FD-STREAM for "file /home/inaimathi/Desktop/test.pdf" {D197C99}> is not a character output stream. [Condition of type SIMPLE-TYPE-ERROR] Restarts: 0: [ABORT] Exit debugger, returning to top level.
Est-il possible de déclarer un binary character stream
? Comment puis-je obtenir une sortie simple sur cl-pdf
? J'utilise SBCL directement à partir des repos Debian (qui est 1.0.29, je pense), au cas où cela serait important.
Je regarde mes affaires (utilise cl-composition, qui appelle le document d'écriture de cl-pdf) et ça a l'air bien. Est-il possible que vous rencontriez des problèmes de permissions? –
ne semble pas être une erreur d'autorisation; les appels réguliers à 'with-open-file' réussissent toujours quand j'essaye d'écrire dans le même fichier que ci-dessus, et je place le répertoire cible au 777 plus tôt juste pour vérifier si cela aide. Quelle implémentation CL utilisez-vous et quelle version de cl-pdf utilisez-vous? (J'ai téléchargé l'archive "cl-pdf-current" du site du concept fractal, je ne sais pas à quel point il est actuel) – Inaimathi
Malheureusement, les dépôts Debian ne sont pas très à jour (presque aucun référentiel CL de distribution Linux, sauf le Lisp Gentoo recouvrir). Je recommanderais d'obtenir un SBCL actuel. – Svante