Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
OpenXPS to format specyfikacji papieru Open XML dla dokumentów, który jest oparty na standardowej specyfikacji European Computer Manufacturers Association (ECMA).
System Windows 8 zapewnia pełną obsługę drukowania OpenXPS za pośrednictwem modelu sterownika wydruku w wersji 4, równolegle z ciągłą obsługą formatu Microsoft XPS. Ten temat koncentruje się na części tej obsługi, która jest istotna dla deweloperów aplikacji systemu Windows. Aby uzyskać informacje o wymaganiach sterowników dotyczących obsługi OpenXPS, zobacz Driver Support for OpenXPS.
Wysyłanie danych XPS do systemu drukowania
Zalecamy użycie IPrintDocumentPackageTarget do wysyłania wszystkich zadań drukowania XPS do systemu wydruku. IPrintDocumentPackageTarget akceptuje model obiektów XPS (OM) bez serializacji i pomaga zwiększyć ogólną wydajność.
Oto krótkie podsumowanie interfejsu IPrintDocumentPackageTarget:
Ten interfejs obsługuje drukowanie z dostosowanych rozwiązań, a także aplikacji klasycznych.
W przypadku aplikacji stacjonarnych można go użyć zamiast StartXpsPrintJob1.
Dostępne w systemie Windows 7 z dodatkiem Service Pack 1 (SP1) i aktualizacją platformy oraz Windows 8.
Uwzględnij DocumentTarget.h w projektach, aby korzystać z tych API.
Aplikacje, które korzystają z dokumentów OpenXPS, powinny pamiętać, że typ MIME dla openXPS jest następujący:
- aplikacja\\oxps
Wysyłanie danych OpenXPS do interfejsu API drukowania XPS
Specyficzne dla OpenXPS, XPS OM akceptuje zarówno MSXPS, jak i OpenXPS, i udostępnia metody konwersji i serializacji do obu formatów. Dzięki temu deweloperzy aplikacji mogą być niezależni od sterownika docelowego, jeśli chcą. Oznacza to również, że deweloperzy aplikacji mogą zawsze przesyłać zadania drukowania jako OM XPS do startXpsPrintJob1 lub IDocumentPackageTarget, wiedząc, że system wydruku będzie obsługiwać wszelkie niezbędne konwersje.
Oczywiście zapobieganie konwersji między formatami XPS poprawi kompleksową wydajność. W aplikacji deweloper może sprawdzić następujący klucz rejestru, aby określić preferowany format XPS docelowego sterownika wydruku:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\[PrintDriverName]\PrintDriverData\XpsFormat
Po ustaleniu preferowanego formatu XPS aplikacja może udostępniać obiekty OM XPS, które nie będą wymagały konwersji. Szczególnie ważne jest użycie zdjęć HD w MSXPS i JPEGXR w OpenXPS. Konwertowanie z JPEGXR do HD Photo jest stosunkowo lekkie, ponieważ podstawową różnicą w tej konwersji jest to, że HD Photo ignoruje 4 bity sterowania, których wymaga JPEGXR. Jednak konwersja z obrazu HD Photo na JPEGXR wymaga ponownego kodowania całego obrazu w celu wygenerowania wymaganych bitów kontrolnych. W związku z tym dostarczanie obrazów JPEGXR dla obrazów o wysokiej rozdzielczości zapewni zgodność z openXPS i zminimalizować koszt konwersji obrazu dla MSXPS.
Nagłówek Xpsobjectmodel_1.h definiuje dodatkowe interfejsy API i obiekty dla OpenXPS. Interfejs IXpsOMObjectFactory1 udostępnia dodatkowe metody konwersji obrazu. Oto składnia:
IXpsOMObjectFactory1->ConvertHDPhotoToJpegXR(IXpsOMImageResource *imageResource);
IXpsOMObjectFactory1->ConvertJpegXRToHDPhoto(IXpsOMImageResource *imageResource);
System Windows 8 udostępnia następujące nowe i zaktualizowane wyliczenia.
Nowe wyliczenie:
Zaktualizowano wyliczenie
Nowe metody GetDocumentType umożliwiają aplikacji określenie formatu dokumentów XPS. Są one dostępne w IXpsOMObjectFactory1, IXpsOMPackage1i IXpsOMPage1. Oto lista metod.
IXpsOMObjectFactory1::GetDocumentTypeFromFile
IXpsOMObjectFactory1::GetDocumentTypeFromStream
IXpsOMPackage1::GetDocumentType
IXpsOMPage1::GetDocumentType
System Windows 8 udostępnia następujące nowe kody błędów w obsłudze systemu OpenXPS:
- XPS\_E\_MISMATCHED\_NAMESPACE.
- Ten błąd jest zwracany, jeśli istnieje niezgodna przestrzeń nazw.
- Ten błąd jest zwracany, jeśli MSXPS używa bezwzględnych identyfikatorów URI w odwołaniach wewnętrznych lub próbuje użyć odwołań wewnętrznych do serializacji w strumieniu. Wynika to z faktu, że OM XPS generuje względne identyfikatory URI. Mimo że biblioteka MSXPS obsługuje zarówno względne, jak i bezwzględne identyfikatory URI, biblioteka OpenXPS wymaga względnych identyfikatorów URI.
Tematy pokrewne
-
Wsparcie sterowników dla OpenXPS