Bug 47093

Summary: [PATCH] A PrintRenderer using Java Print Service API
Product: Fop - Now in Jira Reporter: Martin Voelkle <martin.voelkle>
Component: generalAssignee: fop-dev
Status: NEW ---    
Severity: enhancement    
Priority: P2    
Version: all   
Target Milestone: ---   
Hardware: All   
OS: All   
Attachments: the PrintRenderer

Description Martin Voelkle 2009-04-24 08:01:05 UTC
Created attachment 23537 [details]
the PrintRenderer

The attached PrintRenderer uses the Java Print Service API, introduced in Java 1.4.
It allows to programmatically set print options, like the destination printer and media tray. I use it like this:

// Construct a FopFactory
FopFactory fopFactory = FopFactory.newInstance();
FOUserAgent userAgent = fopFactory.newFOUserAgent();

// Setup FOP print renderer
PrintRenderer renderer = new PrintRenderer();
renderer.setUserAgent(userAgent);
userAgent.setRendererOverride(renderer);

// Construct fop with desired output format
Fop fop = fopFactory.newFop(MimeConstants.MIME_FOP_PRINT, userAgent);
ContentHandler handler = fop.getDefaultHandler();

// lookup a printer
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
DocPrintJob job = service.createPrintJob();
PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet();
// set print request attributes here, like the media tray

// print
job.print(renderer, attributes);

If this PrintRenderer replaced the current one (hint, hint), I could skip the "Setup FOP print renderer" section.
Comment 1 Glenn Adams 2012-04-07 01:44:01 UTC
resetting P2 open bugs to P3 pending further review
Comment 2 Glenn Adams 2012-04-11 03:21:39 UTC
increase priority for bugs with a patch