Patch title: Release 84 bulk changes
Abstract:
File: /pliant/appli/photo/print.pli
Key:
    Removed line
    Added line
module "/pliant/language/unsafe.pli"
module "/pliant/language/stream.pli"
module "/pliant/fullpliant/this_computer.pli"
module "/pliant/graphic/image/prototype.pli"
module "load.pli"
module "/pliant/protocol/lpr/spool.pli"

constant verbose false


function photo_print photo mm_x mm_y offset_x offset_y queue -> status
  arg Str photo ; arg Float mm_x mm_y offset_x offset_y ; arg Str queue ; arg ExtendedStatus status
  var Data:LprQueue printer :> this_computer:env:"printer":queue pmap "" LprQueue
  if not exists:printer
    return (failure "There is no '"+queue+"' print queue.")
  if verbose
    var DateTime startup := datetime
  status := photo_load photo "dimension "+string:mm_x+" "+string:mm_y+" resolution "+(string printer:resolution_x*printer:antialiasing)+" "+(string printer:resolution_y*printer:antialiasing) (var Link:ImagePrototype image)
  status := photo_load photo "dimension "+string:mm_x+" "+string:mm_y+" resolution "+(string printer:resolution_x*printer:antialiasing_x)+" "+(string printer:resolution_y*printer:antialiasing_y) (var Link:ImagePrototype image)
  if status=failure
    return
  if verbose
    console "photo loaded in " (cast datetime:seconds-startup:seconds Int) " seconds" eol
    var DateTime startup := datetime
  part print "print "+photo+" on "+queue
    var Data:LprJob job :> lpr_open queue "raw" (var Stream prn)
    job label := "photo "+photo
    status := lpr_print image "offset "+string:offset_x+" "+string:offset_y job prn
    if status=failure
      lpr_error job "Driver failure: "+status:message
    lpr_close job prn
  if verbose
    console "photo printed in " (cast datetime:seconds-startup:seconds Int) " seconds" eol

export photo_print