> These changes fix https://bugs.openjdk.org/browse/JDK-8372952 "Printed > content is cut off when width > height". > > There are three issues which cause this bug. > #### The first issue > Media printable area does not match the corresponding media size for the > landscape-oriented medias. \ > An example of the actual prints on a paper 80mmx40mm (Epson T-TA88V) > [actual_cut_off.pdf](https://github.com/user-attachments/files/25064646/actual_cut_off.pdf) > > #### The second issue > _MediaSize_ does not allow landscape-oriented medias (X dimension bigger than > Y dimension of the media) so rotated size is used, but the media printable > area stays the same - landscape-oriented. > Current implementation does not allow to use landscape-oriented paper because > _MediaSize_ > constructor allows portrait paper only (width < height). > > I read comments about _MediaSize_ restrictions (width<height) in > https://bugs.openjdk.org/browse/JDK-8041911, which states that this is "by > design" and specification. But I did not find media size restrictions in the > https://datatracker.ietf.org/doc/html/rfc2911. > The RFC defines "orientation-requested" attribute, that was mentioned in the > JDK-8041911 comments, but this attribute indicates the desired orientation > for printed print-stream pages and is used for only a subset of the supported > document formats ('text/plain' or 'text/html') to format the document. \ > As described in the RFC > https://datatracker.ietf.org/doc/html/rfc2911#section-15.3 >> If the document data has been formatted, then go to step 2. Otherwise, the >> document data MUST be formatted. The formatting detection algorithm is >> implementation defined and is not specified by this document. The >> formatting of the document data uses the "orientation-requested" attribute >> to determine how the formatted print data should be placed on a print-stream >> page > > Therefore, if a printer object uses a landscape-oriented paper, a document > format is "text/plain" and an "orientation-requested" attribute contains > "portrait" value then the printer object should rotate the document 90 > degrees. \ > If a printer uses a portrait-oriented paper, a document format is > "text/plain," and an "orientation-requested" attribute contains value > "portrait" then the printer object does no rotation. > > Also, https://datatracker.ietf.org/doc/html/rfc3382 defines a "media-size" > IPP attribute which identifies the size of the media. The RFC contains an > example of this attribute where the X-dimension (the width of the media in > inch) larger than the...
GennadiyKrivoshein has updated the pull request incrementally with one additional commit since the last revision: Reformat test ------------- Changes: - all: https://git.openjdk.org/jdk/pull/29560/files - new: https://git.openjdk.org/jdk/pull/29560/files/95935d4f..8fdbdb2a Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=29560&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=29560&range=00-01 Stats: 33 lines in 1 file changed: 3 ins; 0 del; 30 mod Patch: https://git.openjdk.org/jdk/pull/29560.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/29560/head:pull/29560 PR: https://git.openjdk.org/jdk/pull/29560
