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


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.")
  status := photo_load photo "" (var Link:ImagePrototype img)
  if status=failure
    return
  var Float r := max img:size_x/mm_x img:size_y/mm_y
  img x1 := img:x0+img:size_x/r
  img y1 := img:y0+img:size_y/r
  var Link:ImageResampling rs :> new ImageResampling
  var Float dpi_x := printer:resolution_x*printer:antialiasing
  var Float dpi_y := printer:resolution_y*printer:antialiasing
  rs bind img img:x0 img:y0 img:x1 img:y1 (cast (img:x1-img:x0)/25.4*dpi_x Int) (cast (img:y1-img:y0)/25.4*dpi_y Int) 0 0
  rs x1 := rs:x0+rs:size_x/dpi_x*25.4
  rs y1 := rs:y0+rs:size_y/dpi_y*25.4
  part print "print "+photo+" on "+queue
    status := lpr_print rs "offset "+string:offset_x+" "+string:offset_y printer

export photo_print