다음을 통해 공유


OpenXPS 인쇄에 대한 앱 지원

OpenXPS는 문서의 Open XML 용지 사양 형식이며 ECMA(유럽 컴퓨터 제조업체 협회) 표준 사양을 기반으로 합니다.

Windows 8 Microsoft XPS 형식에 대한 지속적인 지원과 함께 v4 인쇄 드라이버 모델을 통해 OpenXPS 인쇄를 완전히 지원합니다. 이 항목에서는 Windows 애플리케이션 개발자와 관련된 이 지원의 일부에 중점을 둡니다. OpenXPS 지원에 대한 드라이버 요구 사항에 대한 자세한 내용은 OpenXPS에 대한 드라이버 지원을 참조하세요.

인쇄 시스템에 XPS 데이터 보내기

인쇄 시스템에 모든 XPS 인쇄 작업을 보내는 데 IPrintDocumentPackageTarget 을 사용하는 것이 좋습니다. IPrintDocumentPackageTarget 은 직렬화 없이 XPS OM(개체 모델)을 허용하므로 전체 성능을 향상시키는 데 도움이 됩니다.

다음은 IPrintDocumentPackageTarget 인터페이스에 대한 간략한 요약입니다.

  • 이 인터페이스는 데스크톱 애플리케이션뿐만 아니라 맞춤형 솔루션의 인쇄를 지원합니다.

  • 데스크톱 앱의 경우 StartXpsPrintJob1 대신 사용할 수 있습니다.

  • Windows 7에서 SP1(서비스 팩 1) + 플랫폼 업데이트 및 Windows 8 사용할 수 있습니다.

  • 이러한 API를 사용하도록 프로젝트에 DocumentTarget.h 를 포함합니다.

OpenXPS 문서를 사용하는 애플리케이션은 OpenXPS의 MIME 형식이 다음과 같다는 점에 유의해야 합니다.

application\\oxps

XPS 인쇄 API에 OpenXPS 데이터 보내기

OpenXPS와 관련된 XPS OM은 MSXPS와 OpenXPS를 모두 허용하고 두 형식으로 변환 및 serialization을 위한 메서드를 제공합니다. 이렇게 하면 애플리케이션 개발자가 원하는 경우 대상 드라이버에 구애받지 않을 수 있습니다. 즉, 앱 개발자는 인쇄 시스템이 필요한 변환을 처리한다는 것을 알고 항상 인쇄 작업을 XPS OM으로 StartXpsPrintJob1 또는 IDocumentPackageTarget에 제출할 수 있습니다.

물론 XPS 형식 간의 변환을 방지하면 엔드 투 엔드 성능이 향상됩니다. 애플리케이션에서 개발자는 다음 레지스트리 키를 검사 대상 인쇄 드라이버의 기본 XPS 형식을 확인할 수 있습니다.

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\[PrintDriverName]\PrintDriverData\XpsFormat

기본 XPS 형식이 결정되면 애플리케이션은 변환이 필요하지 않은 XPS OM 개체를 제공할 수 있습니다. 특히 MSXPS에서 HD Photo를 사용하고 OpenXPS에서 JPEGXR을 사용하는 것이 중요합니다. 이 변환의 주요 차이점은 HD Photo가 JPEGXR에 필요한 4개의 컨트롤 비트를 무시한다는 점이므로 JPEGXR에서 HD Photo로 변환하는 것은 비교적 가볍습니다. 그러나 HD Photo에서 JPEGXR로 변환하려면 필요한 컨트롤 비트를 생성하기 위해 전체 이미지를 다시 인코딩해야 합니다. 따라서 고해상도 이미지에 JPEGXR 이미지를 제공하면 OpenXPS와의 호환성을 보장하고 MSXPS에 대한 이미지의 변환 비용을 최소화할 수 있습니다.

Xpsobjectmodel_1.h 헤더는 OpenXPS에 대한 추가 API 및 개체를 정의합니다. 또한 IXpsOMObjectFactory1 인터페이스는 이미지 변환을 위한 추가 메서드를 제공합니다. 구문은 다음과 같습니다.

IXpsOMObjectFactory1->ConvertHDPhotoToJpegXR(IXpsOMImageResource *imageResource);

IXpsOMObjectFactory1->ConvertJpegXRToHDPhoto(IXpsOMImageResource *imageResource);

Windows 8 다음과 같은 새 열거형과 업데이트된 열거형을 제공합니다.

새 열거형:

XPS_DOCUMENT_TYPE

업데이트된 열거형

XPS_IMAGE_TYPE

새 GetDocumentType 메서드를 사용하면 애플리케이션에서 문서의 XPS 형식을 확인할 수 있습니다. IXpsOMObjectFactory1, IXpsOMPackage1IXpsOMPage1에서 사용할 수 있습니다. 다음은 메서드 목록입니다.

IXpsOMObjectFactory1::GetDocumentTypeFromFile
IXpsOMObjectFactory1::GetDocumentTypeFromStream
IXpsOMPackage1::GetDocumentType
IXpsOMPage1::GetDocumentType

Windows 8 OpenXPS를 지원하는 다음과 같은 새로운 오류 코드를 제공합니다.

XPS\_E\_MISMATCHED\_NAMESPACE.
네임스페이스가 일치하지 않는 경우 이 오류가 반환됩니다.
XPS\_E\_ABSOLUTE\_REFERENCE.
이 오류는 MSXPS가 내부 참조에서 절대 URI를 사용하거나 내부 참조를 사용하여 스트림에서 serialize를 시도하는 경우 반환됩니다. XPS OM이 상대 URI를 생성하기 때문입니다. MSXPS는 상대 URI와 절대 URI를 모두 지원하지만 OpenXPS에는 상대 URI가 필요합니다.

OpenXPS에 대한 드라이버 지원

IPrintDocumentPackageTarget

IXpsOMObjectFactory1::GetDocumentTypeFromFile

IXpsOMObjectFactory1::GetDocumentTypeFromStream

IXpsOMPackage1::GetDocumentType

IXpsOMPage1::GetDocumentType

XPS_DOCUMENT_TYPE

XPS_IMAGE_TYPE