#include "printer.h"
#include "blop_bookkeeper.h"
#include "bloputils.h"
#include "canvas.h"
namespace blop
{
std::string printer::default_cmd_ = "lpr %f";
var printer::default_command() {return default_cmd_;}
void printer::default_command(const var &o) {default_cmd_ = o.str(); }
void printer::print(const var &cmd, const var &epsopts)
{
printer t(cmd, epsopts);
canvas::current().print(&t);
}
printer::printer(const var &cmd, const var &epsopts) :
eps(blop_bookkeeper::tmpfile("PRINT_XXXXXX.eps"),epsopts), cmd_(cmd)
{
}
printer::~printer()
{
}
void printer::picture_end()
{
base::picture_end();
var cmd = cmd_;
if(cmd.find("%f") == var::npos) cmd &= " %f";
cmd.replace("%f",base::filename_);
int rc;
var message = readcmd(cmd, &rc);
if(rc != 0)
{
cerr<<"The following command failed:"<<endl;
cerr<<cmd.str()<<endl<<endl;
cerr<<"Its output is the following:"<<endl;
cerr<<message.str()<<endl;
}
}
}