Класс ResolutionSyntax
- Все реализуемые интерфейсы:
Serializable, Cloneable
- Непосредственные подклассы:
PrinterResolution
public abstract class ResolutionSyntax extends Object implements Serializable, Cloneable
ResolutionSyntax — это абстрактный базовый класс, предоставляющий общую реализацию всех атрибутов, обозначающих разрешение принтера. Значение атрибута разрешения состоит из двух элементов: разрешения в поперечном направлении подачи и разрешения в направлении подачи. Атрибут разрешения можно создать, указав два значения и единицы измерения этих значений. Предусмотрены методы для получения значений атрибута разрешения с указанием единиц измерения, в которых они должны быть возвращены. Две наиболее распространённые единицы измерения разрешения — точки на дюйм (dpi) и точки на сантиметр (dpcm); для их обозначения предоставлены экспортируемые константы DPI и DPCM.
После создания значение атрибута разрешения неизменяемо.
Проектирование
Значения разрешения в поперечном направлении подачи и в направлении подачи внутри атрибута разрешения хранятся в единицах точек на 100 дюймов (dphi). Хранение значений в dphi, а не, например, в метрических единицах, позволяет выполнять точные целочисленные преобразования между dpi и dphi, а также между dpcm и dphi: 1 dpi = 100 dphi, 1 dpcm = 254 dphi. Таким образом, значения можно записать в атрибут разрешения и получить из него обратно в любой из этих единиц без потери точности. Это не гарантировалось бы при использовании представления с плавающей точкой. Однако, если значения атрибута разрешения создаются в одних единицах, а извлекаются в других, обычно возникает ошибка округления; например, 600 dpi будет округлено до 236 dpcm, тогда как истинное значение (с точностью до пяти значащих цифр) равно 236.22 dpcm.
Хранение значений во внутренних общих единицах dphi позволяет сравнивать два атрибута разрешения независимо от единиц, в которых они были созданы; например, 300 dpcm будет равно 762 dpi, поскольку оба значения хранятся как 76200 dphi. В частности, служба поиска может сопоставлять атрибуты разрешения на основе равенства их сериализованных представлений независимо от единиц, в которых они были созданы. Использование целых чисел для внутреннего хранения также позволяет выполнять точные сравнения на равенство, чего нельзя было бы гарантировать при использовании представления с плавающей точкой.
Экспортируемая константа DPI фактически является коэффициентом преобразования, на который нужно умножить значение в dpi, чтобы получить значение в dphi. Аналогично экспортируемая константа DPCM является коэффициентом преобразования, на который нужно умножить значение в dpcm, чтобы получить значение в dphi. Клиент может указать значение разрешения в единицах, отличных от dpi или dpcm, передав собственный коэффициент преобразования. Однако, поскольку внутренние единицы dphi были выбраны с расчётом только на поддержку внешних единиц dpi и dpcm, нет гарантии, что коэффициент преобразования единиц клиента будет целым числом. Если коэффициент преобразования не является целым числом, значения разрешения в единицах клиента не будут храниться точно.
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
DPCM |
Значение, обозначающее единицы точек на сантиметр (dpcm). |
static final int |
DPI |
Значение, обозначающее единицы точек на дюйм (dpi). |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ResolutionSyntax |
Создаёт новый атрибут разрешения из указанных элементов. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Возвращает, эквивалентен ли этот атрибут разрешения переданному объекту. |
int |
getCrossFeedResolution |
Возвращает разрешение этого атрибута в поперечном направлении подачи в указанных единицах. |
protected int |
getCrossFeedResolutionDphi() |
Возвращает разрешение этого атрибута в поперечном направлении подачи в единицах dphi. |
int |
getFeedResolution |
Возвращает разрешение этого атрибута в направлении подачи в указанных единицах. |
protected int |
getFeedResolutionDphi() |
Возвращает разрешение этого атрибута в направлении подачи в единицах dphi. |
int[] |
getResolution |
Возвращает значения разрешения этого атрибута в указанных единицах. |
int |
hashCode() |
Возвращает хеш-код этого атрибута разрешения. |
boolean |
lessThanOrEquals |
Определяет, меньше ли значение этого атрибута разрешения значения указанного атрибута разрешения или равно ему. |
String |
toString() |
Возвращает строковое представление этого атрибута разрешения. |
String |
toString |
Возвращает строковое представление этого атрибута разрешения в указанных единицах. |
Подробное описание полей
DPI
public static final int DPI
- См. также:
DPCM
public static final int DPCM
- См. также:
Подробное описание конструкторов
ResolutionSyntax
public ResolutionSyntax(int crossFeedResolution, int feedResolution, int units)
- Параметры:
-
crossFeedResolution— разрешение в поперечном направлении подачи -
feedResolution— разрешение в направлении подачи -
units— коэффициент преобразования единиц, напримерDPIилиDPCM - Исключения:
-
IllegalArgumentException— еслиcrossFeedResolution < 1илиfeedResolution < 1илиunits < 1
Подробное описание методов
getResolution
public int[] getResolution(int units)
- Параметры:
-
units— коэффициент преобразования единиц, напримерDPIилиDPCM - Возвращает:
- массив из двух элементов: разрешение в поперечном направлении подачи с индексом 0 и разрешение в направлении подачи с индексом 1
- Исключения:
-
IllegalArgumentException— еслиunits < 1
getCrossFeedResolution
public int getCrossFeedResolution(int units)
- Параметры:
-
units— коэффициент преобразования единиц, напримерDPIилиDPCM - Возвращает:
- разрешение в поперечном направлении подачи
- Исключения:
-
IllegalArgumentException— еслиunits < 1
getFeedResolution
public int getFeedResolution(int units)
- Параметры:
-
units— коэффициент преобразования единиц, напримерDPIилиDPCM - Возвращает:
- разрешение в направлении подачи
- Исключения:
-
IllegalArgumentException— еслиunits < 1
toString
public String toString(int units, String unitsName)
"CxF U", где C — разрешение в поперечном направлении подачи, F — разрешение в направлении подачи, а U — название единицы измерения. Значения округляются до ближайшего целого числа.- Параметры:
-
units— коэффициент преобразования единиц, напримерCODE>DPIилиDPCM -
unitsName— строка с названием единицы измерения, например"dpi"или"dpcm". Еслиnull, название единицы измерения не добавляется к результату. - Возвращает:
- строковое представление этого атрибута разрешения
- Исключения:
-
IllegalArgumentException— еслиunits < 1
lessThanOrEquals
public boolean lessThanOrEquals(ResolutionSyntax other)
- Разрешение этого атрибута в поперечном направлении подачи меньше разрешения атрибута
otherв поперечном направлении подачи или равно ему. - Разрешение этого атрибута в направлении подачи меньше разрешения атрибута
otherв направлении подачи или равно ему.
- Параметры:
-
other— атрибут разрешения для сравнения - Возвращает:
-
true, если этот атрибут разрешения меньше атрибута разрешенияotherили равен ему; в противном случае —false - Исключения:
-
NullPointerException— еслиotherравноnull
equals
public boolean equals(Object object)
-
objectне являетсяnull. -
objectявляется экземпляром классаResolutionSyntax. - Разрешение этого атрибута в поперечном направлении подачи равно разрешению
objectв поперечном направлении подачи. - Разрешение этого атрибута в направлении подачи равно разрешению
objectв направлении подачи.
hashCode
toString
public String toString()
"CxF dphi", где C — разрешение в поперечном направлении подачи, а F — разрешение в направлении подачи. Значения приводятся во внутренних единицах dphi.getCrossFeedResolutionDphi
protected int getCrossFeedResolutionDphi()
- Возвращает:
- разрешение в поперечном направлении подачи
getFeedResolutionDphi
protected int getFeedResolutionDphi()
- Возвращает:
- разрешение в направлении подачи
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/print/attribute/ResolutionSyntax.html