Class Printer
- All Implemented Interfaces:
Drawable
new GC(printer)
and then draw on the printer GC using the usual graphics calls.
A Printer
object may be constructed by providing
a PrinterData
object which identifies the printer.
A PrintDialog
presents a print dialog to the user
and returns an initialized instance of PrinterData
.
Alternatively, calling new Printer()
will construct a
printer object for the user's default printer.
Application code must explicitly invoke the Printer.dispose()
method to release the operating system resources managed by each instance
when those instances are no longer required.
-
Field Summary
Modifier and TypeFieldDescriptionlong
the handle to the printer DC (Warning: This field is platform dependent)Fields inherited from class org.eclipse.swt.graphics.Device
CurrentDevice, DEBUG, DeviceFinder
-
Constructor Summary
ConstructorDescriptionPrinter()
Constructs a new printer representing the default printer.Printer
(PrinterData data) Constructs a new printer given aPrinterData
object representing the desired printer. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Cancels a print job in progress.protected void
Checks the validity of this device.computeTrim
(int x, int y, int width, int height) Given a client area (as described by the arguments), returns a rectangle, relative to the client area's coordinates, that is the client area expanded by the printer's trim (or minimum margins).protected void
create
(DeviceData deviceData) Creates the printer handle.protected void
destroy()
Destroys the printer handle.void
endJob()
Ends the current print job.void
endPage()
Ends the current page.Returns a rectangle describing the receiver's size and location.Returns a rectangle which describes the area of the receiver which is capable of displaying data.static PrinterData
Returns aPrinterData
object representing the default printer ornull
if there is no default printer.getDPI()
Returns a point whose x coordinate is the horizontal dots per inch of the printer, and whose y coordinate is the vertical dots per inch of the printer.Returns aPrinterData
object representing the target printer for this print job.static PrinterData[]
Returns an array ofPrinterData
objects representing all available printers.void
internal_dispose_GC
(long hDC, GCData data) Invokes platform specific functionality to dispose a GC handle.long
internal_new_GC
(GCData data) Invokes platform specific functionality to allocate a new GC handle.boolean
Returnstrue
iff coordinates can be auto-scaled on this drawable andfalse
if not.protected void
release()
Releases any internal state prior to destroying this printer.boolean
Starts a print job and returns true if the job started successfully and false otherwise.boolean
Starts a page and returns true if the page started successfully and false otherwise.Methods inherited from class org.eclipse.swt.graphics.Device
dispose, getDepth, getDeviceData, getDeviceZoom, getFontList, getSystemColor, getSystemFont, getWarnings, init, isDisposed, isTracking, loadFont, setTracking, setWarnings, win32_destroyUnusedHandles
-
Field Details
-
handle
public long handlethe handle to the printer DC (Warning: This field is platform dependent)IMPORTANT: This field is not part of the SWT public API. It is marked public only so that it can be shared within the packages provided by SWT. It is not available on all platforms and should never be accessed from application code.
- Restriction:
- This field is not intended to be referenced by clients.
-
-
Constructor Details
-
Printer
public Printer()Constructs a new printer representing the default printer.Note: You must dispose the printer when it is no longer required.
- Throws:
SWTError
-- ERROR_NO_HANDLES - if there is no valid default printer
- See Also:
-
Printer
Constructs a new printer given aPrinterData
object representing the desired printer. If the argument is null, then the default printer will be used.Note: You must dispose the printer when it is no longer required.
- Parameters:
data
- the printer data for the specified printer, or null to use the default printer- Throws:
IllegalArgumentException
-- ERROR_INVALID_ARGUMENT - if the specified printer data does not represent a valid printer
SWTError
-- ERROR_NO_HANDLES - if there are no valid printers
- See Also:
-
-
Method Details
-
getPrinterList
Returns an array ofPrinterData
objects representing all available printers. If there are no printers, the array will be empty.- Returns:
- an array of PrinterData objects representing the available printers
-
getDefaultPrinterData
Returns aPrinterData
object representing the default printer ornull
if there is no default printer.- Returns:
- the default printer data or null
- Since:
- 2.1
-
create
Creates the printer handle. This method is called internally by the instance creation mechanism of theDevice
class. -
internal_new_GC
Invokes platform specific functionality to allocate a new GC handle.IMPORTANT: This method is not part of the public API for
Printer
. It is marked public only so that it can be shared within the packages provided by SWT. It is not available on all platforms, and should never be called from application code.- Specified by:
internal_new_GC
in interfaceDrawable
- Specified by:
internal_new_GC
in classDevice
- Parameters:
data
- the platform specific GC data- Returns:
- the platform specific GC handle
- Restriction:
- This method is not intended to be referenced by clients.
-
internal_dispose_GC
Invokes platform specific functionality to dispose a GC handle.IMPORTANT: This method is not part of the public API for
Printer
. It is marked public only so that it can be shared within the packages provided by SWT. It is not available on all platforms, and should never be called from application code.- Specified by:
internal_dispose_GC
in interfaceDrawable
- Specified by:
internal_dispose_GC
in classDevice
- Parameters:
hDC
- the platform specific GC handledata
- the platform specific GC data- Restriction:
- This method is not intended to be referenced by clients.
-
isAutoScalable
public boolean isAutoScalable()Description copied from interface:Drawable
Returnstrue
iff coordinates can be auto-scaled on this drawable andfalse
if not. E.g. aGC
method should not auto-scale the bounds of a figure drawn on a Printer device, but it may have to auto-scale when drawing on a high-DPI Display monitor.- Returns:
true
if auto-scaling is enabled for this drawable- Restriction:
- This method is not intended to be referenced by clients.
-
startJob
Starts a print job and returns true if the job started successfully and false otherwise.This must be the first method called to initiate a print job, followed by any number of startPage/endPage calls, followed by endJob. Calling startPage, endPage, or endJob before startJob will result in undefined behavior.
- Parameters:
jobName
- the name of the print job to start- Returns:
- true if the job started successfully and false otherwise.
- Throws:
SWTException
-- ERROR_DEVICE_DISPOSED - if the receiver has been disposed
- See Also:
-
endJob
public void endJob()Ends the current print job.- Throws:
SWTException
-- ERROR_DEVICE_DISPOSED - if the receiver has been disposed
- See Also:
-
cancelJob
public void cancelJob()Cancels a print job in progress.- Throws:
SWTException
-- ERROR_DEVICE_DISPOSED - if the receiver has been disposed
-
startPage
public boolean startPage()Starts a page and returns true if the page started successfully and false otherwise.After calling startJob, this method may be called any number of times along with a matching endPage.
- Returns:
- true if the page started successfully and false otherwise.
- Throws:
SWTException
-- ERROR_DEVICE_DISPOSED - if the receiver has been disposed
- See Also:
-
endPage
public void endPage()Ends the current page.- Throws:
SWTException
-- ERROR_DEVICE_DISPOSED - if the receiver has been disposed
- See Also:
-
getDPI
Returns a point whose x coordinate is the horizontal dots per inch of the printer, and whose y coordinate is the vertical dots per inch of the printer.- Overrides:
getDPI
in classDevice
- Returns:
- the horizontal and vertical DPI
- Throws:
SWTException
-- ERROR_DEVICE_DISPOSED - if the receiver has been disposed
-
getBounds
Returns a rectangle describing the receiver's size and location.For a printer, this is the size of the physical page, in pixels.
- Overrides:
getBounds
in classDevice
- Returns:
- the bounding rectangle
- Throws:
SWTException
-- ERROR_DEVICE_DISPOSED - if the receiver has been disposed
- See Also:
-
getClientArea
Returns a rectangle which describes the area of the receiver which is capable of displaying data.For a printer, this is the size of the printable area of the page, in pixels.
- Overrides:
getClientArea
in classDevice
- Returns:
- the client area
- Throws:
SWTException
-- ERROR_DEVICE_DISPOSED - if the receiver has been disposed
- See Also:
-
computeTrim
Given a client area (as described by the arguments), returns a rectangle, relative to the client area's coordinates, that is the client area expanded by the printer's trim (or minimum margins).Most printers have a minimum margin on each edge of the paper where the printer device is unable to print. This margin is known as the "trim." This method can be used to calculate the printer's minimum margins by passing in a client area of 0, 0, 0, 0 and then using the resulting x and y coordinates (which will be <= 0) to determine the minimum margins for the top and left edges of the paper, and the resulting width and height (offset by the resulting x and y) to determine the minimum margins for the bottom and right edges of the paper, as follows:
- The left trim width is -x pixels
- The top trim height is -y pixels
- The right trim width is (x + width) pixels
- The bottom trim height is (y + height) pixels
- Parameters:
x
- the x coordinate of the client areay
- the y coordinate of the client areawidth
- the width of the client areaheight
- the height of the client area- Returns:
- a rectangle, relative to the client area's coordinates, that is the client area expanded by the printer's trim (or minimum margins)
- Throws:
SWTException
-- ERROR_DEVICE_DISPOSED - if the receiver has been disposed
- See Also:
-
getPrinterData
Returns aPrinterData
object representing the target printer for this print job.- Returns:
- a PrinterData object describing the receiver
-
checkDevice
protected void checkDevice()Checks the validity of this device.- Overrides:
checkDevice
in classDevice
- Throws:
SWTException
-- ERROR_DEVICE_DISPOSED - if the receiver has been disposed
-
release
protected void release()Releases any internal state prior to destroying this printer. This method is called internally by the dispose mechanism of theDevice
class. -
destroy
protected void destroy()Destroys the printer handle. This method is called internally by the dispose mechanism of theDevice
class.
-