Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las interfaces de paquete representan el nivel superior del OM XPS, que corresponde a un archivo de documento XPS. Estas interfaces contienen métodos que serializan un OM XPS en un documento o secuencia XPS y deserializan un paquete XPS para crear un OM XPS que permita a un programa acceder al contenido de un documento.
Ejemplos de código
Los ejemplos de código siguientes muestran cómo un programa usa algunas de las interfaces de paquete. A menos que se indique lo contrario, todos los elementos cursivamente son nombres de parámetro.
- Leer un documento XPS en un de XPS OM
- Escribir un OM XPS en un archivo de documento XPS
- Obtener acceso a la secuencia de documentos del DE OM XPS
- Acceder al CoreProperties del documento
Leer un documento XPS en un OM XPS
A partir de un documento XPS existente cuyo nombre de archivo se almacena en xpsDocumentFilename, este ejemplo de código crea un OM XPS al que hace referencia xpsPackage.
HRESULT hr = S_OK;
IXpsOMPackage *xpsPackage;
hr = xpsFactory->CreatePackageFromFile(
xpsDocumentFilename,
FALSE,
&xpsPackage);
// xpsPackage now contains a pointer to the IXpsOMPackage
// object that has been populated with the contents
// of the XPS document in xpsDocumentFilename.
Escribir un OM XPS en un archivo de documento XPS
En el ejemplo de código siguiente se escribe el OM XPS al que hace referencia xpsPackage. En el ejemplo se crea un documento XPS en el archivo cuyo nombre se almacena en fileName.
HRESULT hr = S_OK;
hr = xpsPackage->WriteToFile(
xpsDocumentFilename,
NULL, // LPSECURITY_ATTRIBUTES
FILE_ATTRIBUTE_NORMAL,
FALSE); // optimizeMarkupSize
Obtener acceso a la secuencia de documentos del OM XPS
En el ejemplo de código siguiente se obtiene un puntero a la interfaz IXpsOMDocumentSequence, que contiene la secuencia de documentos del OM XPS representado por xpsPackage.
HRESULT hr = S_OK;
IXpsOMDocumentSequence *docSeq;
IXpsOMDocumentCollection *docs;
// get the fixed document sequence of the package
hr = xpsPackage->GetDocumentSequence(&docSeq);
// get the collection of fixed documents in
// the fixed document sequence
hr = docSeq->GetDocuments(&docs);
Acceso a CoreProperties del documento
El ejemplo de código siguiente obtiene un puntero a la interfaz IXpsOMCoreProperties, lo que permite al programa acceder al contenido del elemento CoreProperties. En el ejemplo, se supone que el documento se ha leído en un OM XPS representado por xpsPackage.
HRESULT hr = S_OK;
IXpsOMCoreProperties *coreProps;
LPWSTR title;
// get the fixed document sequence of the package
hr = xpsPackage->GetCoreProperties(&coreProps);
// get the title property
hr = coreProps->GetTitle(&title);
// do something with the title property here...
// free the string when finished with it
CoTaskMemFree ( title );
coreProps->Release();
Temas relacionados
-
Navegar por el DE OM XPS