|
Oracle™ Business Intelligence Beans Java API Reference | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--oracle.dss.dataView.ViewPrinter | +--oracle.dss.gridView.GridViewPrinter | +--oracle.dss.table.TablePrinter
Printer for a Table
. This printer can print a Table
onto multiple physical pages. In this case, this TablePrinter
takes responsibility for the print job, including pagination and fitting the Table
to the physical pages. You also use this printer to print a Table
to a Graphics
object, when you want responsibility for the print job. For example, you take responsibility for the print job when you print more than one view on a physical page.
When you give this TablePrinter
responsibility for the print job, you can use the PrintDialog
object from the oracle.dss.dataView.gui
package, to set up full-page and multiple-page printing very easily. You can alternatively use your own UI, calling methods on this TablePrinter
to specify how to print a Table
, and to print the Table
. If you assume responsibility for page layout and calculation, you cannot use the PrintDialog
; you must call methods on this TablePrinter
to print.
The following example shows how to print a Table
, using the oracle.dss.dataView.gui.PrintDialog
.
TablePrinter printer = new TablePrinter(); //One way to get a frame in which to display the Print dialog Frame frame = oracle.bali.ewt.util.WindowUtils.parentFrame(table); PrintDialog dialog = new PrintDialog(frame, printer); dialog.show(); dialog.dispose(); dialog = null;
The following code shows how to print a single view on one or more pages, when you use your own UI and not the PrintDialog
from the dataView.gui
package. The example shows how to print all logical pages of a Table
, fitting each logical page on two physical pages, broken horizontally. The TablePrinter
assumes responsibility for the print job.
TablePrinter printer = new TablePrinter(table); //invoke the standard Print dialog box if(printer.showPrintJob()) { //set the margins printer.setLeftMargin(78); printer.setTopMargin(50); printer.setBottomMargin(30); printer.setRightMargin(50); //set the scale type to fit each logical page on two physical pages printer.setPrintScaleType(SCALE_TO_FIT_PAGES); printer.setFitToNumPagesTall(1); printer.setFitToNumPagesWide(2); //if you want to print at 50 percent, you would use the following: //printer.setPrintScaleType(SCALE_TO_ZOOM_FACTOR); //printer.setPrintZoomFactor(50); //set the range to print all logical pages printer.setRangeType(ALL_LOGICAL_PAGES); //display a string in the upper left header printer.getHeaderAndFooterPainter(ViewPrinter.HEADER_LEFT).setContentType(ViewPrinter.STRINGS); printer.getHeaderAndFooterPainter(ViewPrinter.HEADER_LEFT).setStrings("My Table"); //display the date in the left footer printer.getHeaderAndFooterPainter(ViewPrinter.FOOTER_LEFT).setContentType(ViewPrinter.DATE); //display the page number in the right footer printer.getHeaderAndFooterPainter(ViewPrinter.FOOTER_RIGHT).setContentType(ViewPrinter.PAGE_NUMBER); //save the original state of the view while printing, print, then //restore the original state printer.startPrint(); printer.print(); printer.endPrint(); }
In the following example, the application takes responsibility for the print job. Suppose that you have a very small crosstab and a very small table in an application. The following code shows you you would print both the views on the same page.
CrosstabPrinter cPrinter = new CrosstabPrinter(crosstab); TablePrinter tPrinter = new TablePrinter(table); cPrinter.setRepeatHeaders(true); cPrinter.setPrintScaleType(CrosstabPrinter.ORIGINAL_SIZE); tPrinter.setPrintScaleType(TablePrinter.ORIGINAL_SIZE); cPrinter.setRangeType(CURRENT_LOGICAL_PAGE); tPrinter.setRangeType(CURRENT_LOGICAL_PAGE); //get print job PrintJob pjob = (java.awt.Toolkit.getDefaultToolkit()).getPrintJob(frame, "Printer", null); if(pjob != null) { //set options before calling startPrint Dimension pageDim = pjob.getPageDimension(); //split the page in half, with a 1/4-inch gutter Dimension cDim = new Dimension(pageDim.width, (pageDim.height / 2) - 9); Dimension tDim = new Dimension(cDim); cPrinter.setViewDimension(cDim); tPrinter.setViewDimension(tDim); //print the crosstab to the print job cPrinter.startPrint(); Graphics g = pjob.getGraphics(); //go to the first physical page, even though there is only one cPrinter.prepareFirstPage(g); cPrinter.renderPage(g); cPrinter.endPrint(); //reuse the Graphics object, adding a 1/4" gutter between views g.translate(0, crosstabDim.height + 18); //print the table to the print job tPrinter.startPrint(); tPrinter.prepareFirstPage(g); tPrinter.renderPage(g); tPrinter.endPrint(); //send the print job to the printer g.dispose(); //end the print job pjob.end(); }
PrintDialog
Fields inherited from interface java.awt.print.Printable |
NO_SUCH_PAGE, PAGE_EXISTS |
Constructor Summary | |
TablePrinter(Table c) Constructor. |
Method Summary | |
boolean |
calcPageBounds(DataSubsetRecord record) Calculates the number of complete rows and columns that will fit in the area allotted on a page for printing the Table . |
void |
endPrint() Sets the Table back to its original state. |
Table |
getTable() Retrieves the Table that this TablePrinter prints. |
boolean |
goToFirstPage() Deprecated. As of 1.6.0.9, replaced by prepareFirstPage(Graphics) |
boolean |
goToNextPage() Deprecated. As of 1.6.0.9, replaced by prepareNextPage(Graphics) |
boolean |
goToPrevPage() Deprecated. As of 1.6.0.9, replaced by preparePrevPage(Graphics) |
boolean |
hasNextPage() Indicates whether the view has a physical page after the current physical page. |
boolean |
hasPrevPage() Indicates whether the view has a physical page before the current physical page. |
boolean |
isFirstPhysicalPage() Indicates whether the current physical page is the first physical page in the current logical page. |
boolean |
isLastPhysicalPage() Indicates whether the current physical page is the last physical page in the current logical page. |
boolean |
prepareFirstPage(java.awt.Graphics g) Prepares the first physical page in the table for printing and makes it the current page to print. |
boolean |
prepareNextPage(java.awt.Graphics g) Prepares the next physical page for printing and makes it the current page to print. |
boolean |
preparePrevPage(java.awt.Graphics g) Prepares the previous physical page for printing and makes it the current page to print. |
boolean |
printPage(java.awt.Graphics g) Prints the Table to a Graphics object. |
boolean |
printPage(java.awt.Graphics g, DataSubsetRecord record) Prints the Table to a Graphics object. |
void |
setTable(Table table) Specifies the Table that this TablePrinter should print. |
boolean |
startPrint() Puts the Table in a state for printing. |
boolean |
startPrint(boolean bPreviewMode) Puts the Table in a state for printing. |
Methods inherited from class oracle.dss.gridView.GridViewPrinter |
isRepeatHeaders, setLogicalPage, setRepeatHeaders |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public TablePrinter(Table c)
c
- The Table
that this TablePrinter
prints.Method Detail |
public boolean startPrint()
Table
in a state for printing. This method saves the original state of the view, then it applies printing properties to the Table
. It displays the offscreen image (which has the snapshot of the view) on the screen, so that any modifications done to the view during printing will not be seen.
Calling this method is equivalent to calling startPrint(false)
. It is appropriate for printing tables. To preview a table, call startPrint(true)
.
Calls to the print
method belong between calls to startPrint
and endPrint
.
startPrint
in class ViewPrinter
true
if the print job starts successfully, false
if the data in the view is not available to this TablePrinter
or if there is not enough room to print the view.endPrint()
, startPrint(boolean)
, ViewPrinter.print(boolean)
, printPage(java.awt.Graphics)
, printPage(Graphics, DataSubsetRecord)
, ViewPrinter.print(boolean)
, ViewPrinter.renderPage(java.awt.Graphics)
public boolean startPrint(boolean bPreviewMode)
Table
in a state for printing. This method saves the original state of the view, then it applies printing properties to the Table
. It displays the offscreen image (which has the snapshot of the view) on the screen, so that any modifications done to the view during printing will not be seen.
Use this method, with the renderPage
method, when you preview a table. Passing true
in the bPreviewMode
parameter allows this TablePrinter
to cache information to improve performance.
Calls to the print
method belong between calls to startPrint
and endPrint
.
startPrint
in class ViewPrinter
bPreviewMode
- true
if you are previewing the print job, false
if you are actually sending the print job to a printer.true
if the print job starts successfully, false
if the data in the view is not available to this TablePrinter
or if there is not enough room to print the view.endPrint()
, printPage(java.awt.Graphics)
, printPage(Graphics, DataSubsetRecord)
, ViewPrinter.print(boolean)
, ViewPrinter.renderPage(java.awt.Graphics)
public void endPrint()
Table
back to its original state. This method removes the offscreen image that the startPrint
method displays, and restores the active display of the Table
.
Calls to the print
, renderPage
, or printPage
methods belong between calls to startPrint
and endPrint
.
endPrint
in class ViewPrinter
startPrint()
, printPage(Graphics)
, printPage(Graphics, DataSubsetRecord)
, ViewPrinter.print(boolean)
, ViewPrinter.renderPage(java.awt.Graphics)
public boolean isFirstPhysicalPage()
renderPage
method.isFirstPhysicalPage
in class ViewPrinter
true
if the current physical page is the first physical page in the current logical page, false
if the current physical page is not the first in the logical page.ViewPrinter.renderPage(java.awt.Graphics)
public boolean isLastPhysicalPage()
renderPage
method.isLastPhysicalPage
in class ViewPrinter
true
if the current physical page is the last physical page in the current logical page, false
if the current physical page is not the last in the logical page.ViewPrinter.renderPage(java.awt.Graphics)
public Table getTable()
Table
that this TablePrinter
prints.Table
that this TablePrinter
prints.public void setTable(Table table)
Table
that this TablePrinter
should print.table
- The Table
that needs to be printed.public boolean calcPageBounds(DataSubsetRecord record)
Table
. This method is useful when use the printPage
method to print. It is useful when the view does not fit in the ViewDimension
that you have allotted for it, and you want to continue printing the view in another area.
The area that this method uses for calculation is specified in the setViewDimension
method.
In the DataSubsetRecord
that you pass, you provide information about the rows and columns that you want to print. This method stores information about the last row and column that can be printed. If the first column does not fit in the alloted area, then this method stores information about the amount of the column that can be printed in the area. You are responsible for saving the information from the DataSubsetRecord
, so that you can use it in future calls to this method.
record
- The DataSubsetRecord
that specifies where in the Table
the printing should begin.true
if the page boundaries are successfully calculated, false
if the data in the view is not available to this TablePrinter
.DataSubsetRecord
public boolean printPage(java.awt.Graphics g)
Table
to a Graphics
object. This method is useful when you do not want to start with the first row and column in a table. Before you call this method, call calcPageBounds
.
This method renders the Table
in the Dimension
that is specified by the ViewDimension
property of this TablePrinter
. This method uses data present from the DataSubsetRecord
that you pass to the calcPageBounds
method.
g
- The Graphics object to which to print the Table
.true
if the print job is successful, false
if the data in the view is not available to this TablePrinter
.public boolean printPage(java.awt.Graphics g, DataSubsetRecord record)
Table
to a Graphics
object. This method is useful when you do not want to start with the first row and column in a crosstab.
This method renders the Table
in the Dimension
that is specified by the ViewDimension
property of this TablePrinter
.
Use this method, rather than printPage(Graphics)
, when the DataSubsetRecord
has changed since you called calcPageBounds
.
g
- The Graphics object to which to print the Table
.record
- The DataSubsetRecord
that specifies the location in the Table
to start printing.true
if the print job is successful, false
if the data in the view is not available to this TablePrinter
.public boolean goToFirstPage()
prepareFirstPage(Graphics)
prepareFirstPage
method respects the MarginAdjustment
property.goToFirstPage
in class ViewPrinter
ViewPrinter.setMarginAdjustment(int)
public boolean prepareFirstPage(java.awt.Graphics g)
renderPage
to print. Call this method before you call any of the other methods for changing pages. Call this method, even if you only print one physical page. This method performs initialization for printing.prepareFirstPage
in class ViewPrinter
g
- The Graphics
object to which to print the page.true
if the call is successful, false
if the first physical page has no data.hasNextPage()
, prepareNextPage(java.awt.Graphics)
, ViewPrinter.renderPage(java.awt.Graphics)
public boolean hasNextPage()
renderPage
to print. Call this method before you call prepareNextPage
.hasNextPage
in class ViewPrinter
true
if the view has another physical page after the current page, false
if the current physical page is the last physical page.prepareNextPage(java.awt.Graphics)
, ViewPrinter.renderPage(java.awt.Graphics)
public boolean goToNextPage()
prepareNextPage(Graphics)
prepareNextPage
method respects the MarginAdjustment
property.goToNextPage
in class ViewPrinter
ViewPrinter.setMarginAdjustment(int)
public boolean prepareNextPage(java.awt.Graphics g)
renderPage
to print. Unless you are certain that there is a next page, you should call hasNextPage
before you call this method. Also, before calling this method, call prepareFirstPage
.prepareNextPage
in class ViewPrinter
g
- The Graphics
object to which to print the page.true
if the call is successful, false
if the next physical page has no data.prepareFirstPage(java.awt.Graphics)
, hasNextPage()
, ViewPrinter.renderPage(java.awt.Graphics)
public boolean hasPrevPage()
renderPage
to print. Call this method before you call preparePrevPage
.hasPrevPage
in class ViewPrinter
true
if the view has another physical page before the current page, false
if the current physical page is the first physical page.preparePrevPage(java.awt.Graphics)
, ViewPrinter.renderPage(java.awt.Graphics)
public boolean goToPrevPage()
preparePrevPage(Graphics)
preparePrevPage
method respects the MarginAdjustment
property.goToPrevPage
in class ViewPrinter
ViewPrinter.setMarginAdjustment(int)
public boolean preparePrevPage(java.awt.Graphics g)
renderPage
to print. Unless you are certain that there is a previous page, you should call hasPrevPage
before you call this method. Also, before calling this method, call prepareFirstPage
.preparePrevPage
in class ViewPrinter
g
- The Graphics
object to which to print the page.true
if the call is successful, false
if the previous physical page has no data.prepareFirstPage(java.awt.Graphics)
, hasPrevPage()
, ViewPrinter.renderPage(java.awt.Graphics)
|
Oracle™ Business Intelligence Beans Java API Reference | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |