root/trunk/bknr/datastore/src/utils/make-fdf-file.lisp

Revision 3987, 1.0 kB (checked in by hans, 3 months ago)

Minor cosmetical fixes
Fix startup from Makefile
Repair certificate generation (not yet complete)

  • Property svn:eol-style set to native
  • Property svn:keywords set to author date id revision
Line 
1 ;; -*- Lisp -*-
2
3 ;; make-fdf-file.lisp
4
5 ;; Funktion zum Erstellen von FDF-Dateien.  Diese können mit Hilfe von
6 ;; pdftk verwendet werden, um PDF-Formulare auszufuellen.  Das
7 ;; FDF-Format ist dabei ein Unterformat von Adobe PDF und wird in der
8 ;; PDF-Spezifikation beschrieben.
9
10 (in-package :bknr.utils)
11
12 (enable-interpol-syntax)
13
14 (defun pdf-quote-string (string)
15   (regex-replace-all #?r"([\(\)\\])" string #?r"\\\1"))
16
17 (defun make-fdf-file (file-name &rest keys-and-values)
18   (with-open-file (stream file-name :direction :output :if-does-not-exist :create :if-exists :supersede :external-format :latin-1)
19     (format stream "%FDF-1.2
20 1 0 obj
21 <</FDF
22  <</Fields
23   [
24 ")
25     (loop for (key value) on keys-and-values by #'cddr
26        do (format stream "   <</T(~(~a~))/V(~a)>>~%" key
27                   (pdf-quote-string (if (stringp value)
28                                         value
29                                         (format nil "~a" value)))))
30     (format stream "  ]
31  >>
32 >>
33 endobj
34 trailer
35 <</Root 1 0 R>>
36 %%EOF")))
37    
Note: See TracBrowser for help on using the browser.