+=item render OPTION => VALUE ...
+
+Fills in the template and renders it to a PDF document. Returns the
+name of the PDF file.
+
+Options are as for 'prepare', but 'from' and 'to' are meaningless.
+
+=cut
+
+# will also have options to set paper size, margins, etc.
+
+sub render {
+ my $self = shift;
+ eval "use PDF::WebKit";
+ die $@ if $@;
+ my %opt = @_;
+ my %hash = $self->prepare(%opt);
+ my $html = $hash{'html_body'};
+
+ # Graphics/stylesheets should probably go in /var/www on the Freeside
+ # machine.
+ my $kit = PDF::WebKit->new(\$html); #%options
+ # hack to use our wrapper script
+ $kit->configure(sub { shift->wkhtmltopdf('freeside-wkhtmltopdf') });
+
+ $kit->to_pdf;
+}
+
+=item print OPTIONS
+
+Render a PDF and send it to the printer. OPTIONS are as for 'render'.
+
+=cut
+
+sub print {
+ my( $self, %opt ) = @_;
+ do_print( [ $self->render(%opt) ], agentnum=>$opt{cust_main}->agentnum );
+}
+