public final class JobSettings
extends java.lang.Object
As documented on PrinterJob, the JobSettings installed on that job will initially reflect the current default settings for the initially associated printer for that job.
The JobSettings delegate then remains the same for the life of the job, and will have it's member properties updated to be compatible with a change in Printer on the job. For example as a result of a user interaction via a platform's dialog. An incompatible setting will usually cause the setting to revert to the default for the new printer.
Any implicit or explicit updates to settings resulting from the user interaction with dialog will be propagated and visible to the application once the user approves the settings by dismissing the dialog using its "accept" option.
For most printing applications it is likely sufficient to let the user set the desired options and have these propagated to the job. For applications which need them, there are setter and getter methods for the individual options, which are also available as properties, and change in values of settings may be monitored and updated via these properties.
Not all values of settings are available on all printers. For example
a printer may not support two-sided printing.
See the Printer
class for how to
to determine supported settings.
Constructor and Description |
---|
JobSettings(Printer printer) |
Modifier and Type | Method and Description |
---|---|
ObjectProperty<Collation> |
collationProperty()
Property representing an instance of
Collation . |
IntegerProperty |
copiesProperty()
IntegerProperty representing the number of
copies of the job to print. |
Collation |
getCollation()
Collation determines how sheets are sorted when
multiple copies of a document are printed.
|
int |
getCopies() |
java.lang.String |
getJobName() |
PageLayout |
getPageLayout()
Get the current page layout for this job.
|
PageRange[] |
getPageRanges()
The range of pages to print.
|
PaperSource |
getPaperSource() |
PrintColor |
getPrintColor() |
PrintQuality |
getPrintQuality() |
PrintResolution |
getPrintResolution() |
PrintSides |
getPrintSides()
If a printer supports it, then a job may be printed on
both sides of the media (paper), ie duplex printing.
|
private boolean |
isJobNew() |
StringProperty |
jobNameProperty()
StringProperty representing the name of a job. |
ObjectProperty<PageLayout> |
pageLayoutProperty()
Property representing an instance of
PageLayout . |
ObjectProperty |
pageRangesProperty()
An
ObjectProperty whose value represents the job pages
to print as an array of PageRange. |
ObjectProperty<PaperSource> |
paperSourceProperty()
Property representing an instance of
PaperSource . |
ObjectProperty<PrintColor> |
printColorProperty()
Property representing an instance of
PrintColor . |
ObjectProperty<PrintQuality> |
printQualityProperty()
Property representing an instance of
PrintQuality . |
ObjectProperty<PrintResolution> |
printResolutionProperty()
Property representing an instance of
PrintResolution . |
ObjectProperty<PrintSides> |
printSidesProperty()
Property representing an instance of
PrintSides . |
void |
setCollation(Collation collation)
Set the
Collation property. |
void |
setCopies(int nCopies) |
void |
setJobName(java.lang.String name) |
void |
setPageLayout(PageLayout pageLayout)
Set the PageLayout to use.
|
void |
setPageRanges(PageRange... pages)
The range of pages to print as an array of PageRange.
|
void |
setPaperSource(PaperSource value) |
void |
setPrintColor(PrintColor color)
Set the
PrintColor property. |
(package private) void |
setPrinterJob(PrinterJob job) |
void |
setPrintQuality(PrintQuality quality)
Set the
PrintQuality property. |
void |
setPrintResolution(PrintResolution resolution)
Set the
PrintResolution property. |
void |
setPrintSides(PrintSides sides)
Set the
PrintSides property which controls
duplex printing. |
java.lang.String |
toString() |
(package private) void |
updateForPrinter(Printer printer)
If any settings are incompatible with the specified printer,
they are updated to be compatible.
|
private PrinterJob job
private Printer printer
private PrinterAttributes printerCaps
private boolean defaultCopies
private boolean hasOldCopies
private int oldCopies
private boolean defaultSides
private boolean hasOldSides
private PrintSides oldSides
private boolean defaultCollation
private boolean hasOldCollation
private Collation oldCollation
private boolean defaultPrintColor
private boolean hasOldPrintColor
private PrintColor oldPrintColor
private boolean defaultPrintQuality
private boolean hasOldPrintQuality
private PrintQuality oldPrintQuality
private boolean defaultPrintResolution
private boolean hasOldPrintResolution
private PrintResolution oldPrintResolution
private boolean defaultPaperSource
private boolean hasOldPaperSource
private PaperSource oldPaperSource
private boolean defaultPageLayout
private boolean hasOldPageLayout
private PageLayout oldPageLayout
private static final java.lang.String DEFAULT_JOBNAME
private SimpleStringProperty jobName
private IntegerProperty copies
private ObjectProperty<PageRange[]> pageRanges
private ObjectProperty<PrintSides> sides
private ObjectProperty<Collation> collation
private ObjectProperty<PrintColor> color
private ObjectProperty<PrintQuality> quality
private ObjectProperty<PrintResolution> resolution
private ObjectProperty<PaperSource> paperSource
private ObjectProperty<PageLayout> layout
JobSettings(Printer printer)
void setPrinterJob(PrinterJob job)
private boolean isJobNew()
void updateForPrinter(Printer printer)
public final StringProperty jobNameProperty()
StringProperty
representing the name of a job.public java.lang.String getJobName()
public void setJobName(java.lang.String name)
name
- string representing the name of a job.public final IntegerProperty copiesProperty()
IntegerProperty
representing the number of
copies of the job to print.public int getCopies()
public final void setCopies(int nCopies)
nCopies
- number of copies to print.public final ObjectProperty pageRangesProperty()
ObjectProperty
whose value represents the job pages
to print as an array of PageRange.
A null values mean print all pages.
Otherwise it must be a non-overlapping array of PageRange
instances ordered in increasing page number.
Page numbers start from 1 (one).
An empty array is considered equivalent to a null array.
An illegal or unsupported (by the printer) set of page ranges will be ignored.
Ranges which exceed beyond the number of pages imaged by the job during printing do not cause any error.
public PageRange[] getPageRanges()
pageRangesProperty
for more details.public void setPageRanges(PageRange... pages)
((PageRange[])null)
always means all pages however
since this is the default it is less likely to be used.
See pageRangesProperty
for more details.pages
- null or a varargs array as specified abovepublic final ObjectProperty<PrintSides> printSidesProperty()
PrintSides
.public PrintSides getPrintSides()
public void setPrintSides(PrintSides sides)
PrintSides
property which controls
duplex printing.
A null value is ignored.sides
- new setting for number of sides.public final ObjectProperty<Collation> collationProperty()
Collation
.public Collation getCollation()
false) is the typical default value.
public void setCollation(Collation collation)
Collation
property.
A null value is ignored.collation
- new setting for collationpublic final ObjectProperty<PrintColor> printColorProperty()
PrintColor
.public PrintColor getPrintColor()
public void setPrintColor(PrintColor color)
PrintColor
property.
A null value is ignored.
color
- new setting for print color.public final ObjectProperty<PrintQuality> printQualityProperty()
PrintQuality
.public PrintQuality getPrintQuality()
public void setPrintQuality(PrintQuality quality)
PrintQuality
property.
A null value is ignored.
Note that quality and resolution overlapping concepts. Therefore a printer may support setting one, or the other but not both. Applications setting these programmatically should query both properties and select appropriately from the supported values. If a printer supports non-standard values, code likely cannot distinguish the printer's interpretation of these values and is safest to stick to selecting from the standard value that matches the requirement.
quality
- new setting for print quality.public final ObjectProperty<PrintResolution> printResolutionProperty()
PrintResolution
.public PrintResolution getPrintResolution()
public void setPrintResolution(PrintResolution resolution)
PrintResolution
property.
A null value is ignored.
Note that quality and resolution overlapping concepts. Therefore a printer may support setting one, or the other but not both. Applications setting these programmatically should query both properties and select appropriately from the supported values. If a printer supports non-standard values, code likely cannot distinguish the printer's interpretation of these values and is safest to stick to selecting from the standard value that matches the requirement.
resolution
- new setting for print resolution.public final ObjectProperty<PaperSource> paperSourceProperty()
PaperSource
.public PaperSource getPaperSource()
public void setPaperSource(PaperSource value)
public final ObjectProperty<PageLayout> pageLayoutProperty()
PageLayout
.public PageLayout getPageLayout()
public void setPageLayout(PageLayout pageLayout)
pageLayout
- The page layout to use.public java.lang.String toString()
toString
in class java.lang.Object