Win a copy of The Little Book of Impediments (e-book only) this week in the Agile and Other Processes forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

How to retrieve the data from a jsp page for print? (using weblogic portal)

 
Maria James
Greenhorn
Posts: 8
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
i have a dynamic jsp file which will get the data at runtime.I have a print button in the jsp.When i chick the print button it should capture the data from the jsp and print it as LANDSCAPE mode. Now i am using Java Api for this

Following code is a working sample which prints some data in LANDSCAPE mode..This is working fine....How can i modify this to get the data from a jsp?....I am using weblogic workshop for development


package Awtjava;
//working example

import java.awt.*;
import java.awt.print.*;

public class testPrint implements Printable {
private static String s[];
private static Font f;
private static int nLines;
public static void main (String arg[]){
s = new String[10];
f = new Font("Arial", Font.PLAIN, 11);
int i;
s[0] = "This is a printer test";
for (i=1; i<10; i++){
s[i] = "The next line";
}
nLines = 10;
testPrint.printa();
}
public static void printa(){
System.out.println("public static void printa () ");
PrinterJob pj=PrinterJob.getPrinterJob();
Book b = new Book();;
PageFormat pf = new PageFormat();
pf = pj.defaultPage(pf);
b.append(new testPrint(), pf, 2);
pj.setPageable (b);
try{
if (pj.printDialog()){
pj.print();
}
}
catch (Exception e) { System.out.println ("Error"); }
}
public int print (Graphics g1, PageFormat pf, int n){
System.out.println("public int print");
int x,y,i,fa,fh;
FontMetrics fm;
Graphics2D g = (Graphics2D) g1;
pf.setOrientation(PageFormat.LANDSCAPE);

fm = g.getFontMetrics (f);
fa = fm.getMaxAscent();
fh = fm.getHeight();
x = (int)pf.getImageableX();
y = (int)pf.getImageableY() + fa;

g.setFont (f);
g.setColor(Color.black);
if (n==1){
for (i=0; i<10; i++){
g.drawString (s[i], x, y);
y += fh;
}
return PAGE_EXISTS;
}
else {
for (i=10;i<10; i++){
g.drawString (s[i], x, y);
y += fh;
}
return PAGE_EXISTS;
}
}
}


Hope you will reply soon
Thanks in advance
Maria
 
Stefan Zoerner
Author
Ranch Hand
Posts: 121
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Maria,

as far as I understand your code sample it creates a print job locally, and this probably not what you want to do in a portal (or any Java web) environment. If a user hits your button within his/her browser, the portlet code is executed within the portlet container, which likely is a different computer. Therefore I would recommend to revisited your design.

One option is to offer a download button, and provide the user the data, which is presented by the JSP, as csv, Excel, PDF (or whatever fits your need) format. S/he may print this document on his/her workstation without your portlet involved.

Greetings, Stefan
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic