]> git.donarmstrong.com Git - lilypond.git/blob - scm/framework-pdf.scm
*** empty log message ***
[lilypond.git] / scm / framework-pdf.scm
1 ;; WIP
2
3 (define-module (scm framework-pdf))
4
5 (use-modules (ice-9 regex)
6              (ice-9 string-fun)
7              (ice-9 format)
8              (guile)
9              (srfi srfi-1)
10              (srfi srfi-13)
11              (lily))
12
13 (define framework-pdf-module (current-module))
14
15 ;;(define pdebug stderr)
16 (define (pdebug . rest) #f)
17
18 (define (pdf-ify lst)
19   (cond
20    ((pair? lst)
21     (cons (pdf-ify (car lst)) (pdf-ify (cdr lst))))
22    ((vector? lst)
23     (vector-for-each pdf-ify lst))
24    ((ly:pdf-object? lst) lst)
25    ((or
26     (string? lst)
27     (number? lst)
28     (symbol? lst))
29     (pdf-ify lst))
30    
31    (else
32     (ly:make-pdf-object '(null)))))
33
34 (define (make-page-object parent contents)
35   (ly:make-pdf-object
36    (cons 'dictionary
37          (pdf-ify
38           `((Type . Page)
39             (Parent . ,parent)
40             (Contents . ,contents))))))
41
42 (define (make-page-node root))
43
44
45 (define-public (output-framework basename book scopes fields)
46   (let* ((filename (format "~a.pdf" basename))
47          (pdf (ly:open-pdf-file filename))
48          (outputter
49           (ly:make-paper-outputter (format "~a.bla.pdf" basename) "pdf"))
50          (paper (ly:paper-book-paper book))
51          (pages (ly:paper-book-pages book))
52          (landscape? (eq? (ly:output-def-lookup paper 'landscape) #t))
53          (page-number (1- (ly:output-def-lookup paper 'firstpagenumber)))
54          (page-count (length pages))
55          (port (ly:outputter-port outputter)))))