#!/bin/sh  
# \
exec oagtclsh "$0" "$@"

set auto_path [linsert $auto_path 0  /usr/local/oag/apps/lib/$env(HOST_ARCH)]
set auto_path [linsert $auto_path 0 /usr/local/oag/lib_patch/$env(HOST_ARCH)]

APSStandardSetup

set args $argv
set pages 0
set paper 17x22in
set input ""
APSStrictParseArguments {input pages paper}
if {($pages < 1) || (![llength $input])} {
    puts "usage: pdfimpose -input <filename> -pages <num> -paper <17x22in>"
    exit
}

set i 1
set pagesOfPaper [expr int(ceil($pages / 8.0))]
set n [expr $pagesOfPaper * 8]

set order ""

for {set page 1} {$page <= $pagesOfPaper} {incr page} {
    set p1 [expr $n - 1]
    set p2 $n
    set p3 $i
    set p4 [expr $i + 1]
    set p5 [expr $n - 2]
    set p6 [expr $n - 3]
    set p7 [expr $i + 3]
    set p8 [expr $i + 2]

    if {$p1 > $pages} {set p1 x}
    if {$p2 > $pages} {set p2 x}
    if {$p3 > $pages} {set p3 x}
    if {$p4 > $pages} {set p4 x}
    if {$p5 > $pages} {set p5 x}
    if {$p6 > $pages} {set p6 x}
    if {$p7 > $pages} {set p7 x}
    if {$p8 > $pages} {set p8 x}

  lappend order "$p1,$p2,$p3,$p4,$p5,$p6,$p7,$p8"
  incr n -4
  incr i 4
}

if {[catch {exec java -cp /usr/local/oag/apps/lib/linux-x86_64/Multivalent.jar tool.pdf.Impose -paper $paper -dim 2x2 -layout 1,2,3,4,5u,6u,7u,8u -page [join $order ,] $input} result]} {
    puts $result
} else {
    puts "output written to [file rootname $input]-up.pdf"
}

