인쇄 대화 상자를 표시하고 인쇄 작업을 제출하려면 java awt PrinterJob을 사용하고 있습니다. 작업이 제출되기 전에 사용자가 선택한 속성을 대화 상자에서 읽으 려하지만 '속성'이 보호 된 변수라는 것을 알고 있으므로 어떻게 액세스 할 수 있는지 잘 모르겠습니다. 제출되는 인쇄 작업에 대한 분석을 실행해야합니다. 여기에 해결 방법이 있습니까?PrinterJob 속성 검색 중
답변
PrinterJob.printDialog()
대신 PrinterJob.printDialog(PrintRequestAttributeSet)
메서드를 사용해야합니다. 제공된 PrintRequestAttributeSet
에서 사용자는 인쇄 대화 상자에서 사용자가 선택한 모든 속성을 받게됩니다. 이 PrintRequestAttributeSet
에서
당신이 다음
- 가
toArray()
방법 호출하여 모든 속성을 얻을 수 있습니다 - 또는
get(Class<?>)
방법
(패키지PrintRequestAttribute
를 구현하는 클래스를 사용을 사용하여 개별 특성을 얻을javax.print.attribute.standard
키로 사용).
그런 다음 속성을 제거하거나 추가하여 PrintRequestAttributeSet
을 변경할 수 있습니다.
마지막으로 print()
메서드를 호출하여 PrinterJob
을 제출하십시오.
예 :
media: iso-a4
orientation-requested: portrait
media-printable-area: (25.4,25.4)->(159.2,246.2)mm
copies: 1
copies: 1
media: iso-a4
mediaPrintableArea: (25.4,25.4)->(159.2,246.2)mm
mediaTray: null
orientationRequested: portrait
sides: null
정말 고마워. 인쇄 대화 상자의 속성 단추가 비활성화 된 것을 볼 수 있습니다. 어떻게 활성화시킬 수 있습니까? – curie
인쇄 할 것이 없기 때문일 수 있습니다. 'job.setPrintable (...)'을 호출 했습니까? [A 기본 인쇄 프로그램] (https://docs.oracle.com/javase/tutorial/2d/printing/printable.html)을 참조하십시오. –
나를 위해 (내 프린터, Windows에서) 인쇄 대화 상자에서 속성 단추를 사용할 수 있으며 제대로 작동합니다. 프린터가 속성을 지원하지 않을 수 있습니다. –
이 내가 사용하고있는 코드입니다 : I 위의 예와
이 출력을 얻었다. PrinterJob job = PrinterJob.getPrinterJob(); 부울 ok = job.printDialog; 인쇄 대화 상자에서 작업 속성을 선택한 후에 속성을 읽고 분석하고 싶습니다. – curie