1#!/bin/sh 2# $Id: quickreference.tcl 14574 2005-10-29 16:27:43Z bonefish $ 3# 4# PDFlib/PDI client: mini imposition demo 5# 6 7# Hide the exec to Tcl but not to the shell by appending a backslash\ 8exec tclsh "$0" ${1+"$@"} 9 10# The lappend line is unnecessary if PDFlib has been installed 11# in the Tcl package directory 12set auto_path [linsert $auto_path 0 .libs .] 13 14package require pdflib 5.0 15 16set maxrow 2 17set maxcol 2 18set startpage 1 19set endpage 4 20set width 500.0 21set height 770.0 22set infile "reference.pdf" 23# This is where font/image/PDF input files live. Adjust as necessary. 24set searchpath "../data" 25 26set p [PDF_new] 27 28if {[PDF_open_file $p "quickreference.pdf"] == -1} { 29 puts stderr "Error: [PDF_get_errmsg $p]" 30 exit 31} 32 33PDF_set_parameter $p "SearchPath" $searchpath 34 35PDF_set_info $p "Creator" "quickreference.tcl" 36PDF_set_info $p "Author" "Thomas Merz" 37PDF_set_info $p "Title" "Mini Imposition Demo (Tcl)" 38 39set manual [PDF_open_pdi $p $infile "" 0] 40if {$manual == -1} { 41 puts stderr "Error: [PDF_get_errmsg $p]" 42 exit 43} 44 45set row 0 46set col 0 47 48PDF_set_parameter $p "topdown" "true" 49 50for {set pageno $startpage} {$pageno <= $endpage} \ 51 {set pageno [expr $pageno + 1]} { 52 if {$row == 0 && $col == 0} { 53 PDF_begin_page $p $width $height 54 set font [PDF_load_font $p "Helvetica-Bold" "winansi" ""] 55 PDF_setfont $p $font 18 56 PDF_set_text_pos $p 24 [expr 24] 57 PDF_show $p "PDFlib Quick Reference" 58 } 59 60 set page [PDF_open_pdi_page $p $manual $pageno ""] 61 62 if {$page == -1} { 63 puts stderr "Error: [PDF_get_errmsg $p]" 64 exit 65 } 66 67 set scale [expr {1.0/$maxrow}] 68 PDF_fit_pdi_page $p $page [expr $width/$maxcol*$col] \ 69 [expr ($row + 1) * $height/$maxrow] "scale $scale" 70 PDF_close_pdi_page $p $page 71 72 set col [expr $col + 1] 73 if {$col == $maxcol} { 74 set col 0 75 set row [expr $row + 1] 76 } 77 if {$row == $maxrow} { 78 set row 0 79 PDF_end_page $p 80 } 81} 82 83# finish the last partial page 84if {$row != 0 || $col != 0} { 85 PDF_end_page $p 86} 87PDF_close $p 88PDF_close_pdi $p $manual 89PDF_delete $p 90