Posted to tcl by miguel at Sat Apr 23 16:00:50 GMT 2011view raw
- set inputFname /foo/bar/sum.pdf
- set outputFname /foo/bar/sum2.pdf
- set indicesFname /foo/bar/idxes
- set chunkSize 4000
- set pagemarker \f; #or whatever it is
- set f [open $idxes]
- set idxdata [read $f]
- close $f
- # build a list of indices and replacements in idxlist/idxrepl
- set idxlist [....]
- set idxrepl [....]
- unset idxdata
- set in [open $inputFname]
- set out [open $outputFname w]
- set inbuf {}
- set i 0
- set idxused 0
- while {![eof $in]} {
- append inbuf [read $in $chunkSize]
- set inlist [split $inbuf $pagemarker]
- if {![eof $in]} {
- set inbuf [lindex $inlist end]
- set inlist [lrange $inlist 0 end-1]
- } else {
- set pagemarker {}
- }
- foreach page $inlist {
- while 1 {
- set found [regsub [lindex $idxlist $i] $page [lindex $idxrepl $i] page]
- if {$found} {
- set idxused 1
- } elseif {$idxused} {
- incr i
- set idxused 0
- continue
- }
- puts -nonewline $out $page$pagemarker
- break
- }
- }
- }
Comments
Posted by miguel at Sat Apr 23 16:03:08 GMT 2011 [text] [code]
untested not suntested ...