Manipulación de billetes impresos | Java
Introducción al esquema de impresión
Los documentos XPS y el modelo de objetos XPS pueden utilizar los objetos de ticket de impresión, que se introducen en la Especificación del esquema de impresión, para definir las preferencias de impresión de un documento para impresoras y aplicaciones de visualización.
El Esquema de impresión es un esquema jerárquico basado en XML que se utiliza para organizar y describir las propiedades de la impresora o del trabajo de impresión. Consta de dos partes principales: las Palabras clave del esquema de impresión y el Marco del esquema de impresión. Las palabras clave del esquema de impresión son instancias de elementos que describen los atributos de la impresora y la intención de formato del trabajo de impresión, mientras que el marco del esquema de impresión define un conjunto de tipos de elementos XML en una estructura jerárquica y especifica cómo se pueden usar estos tipos de elementos juntos.
La tecnología Print Schema, conocida como PrintTicket, se crea utilizando las palabras clave del Print Schema según lo especificado en Print Schema Framework. La Especificación del esquema de impresión permite extensiones de esquema por parte de terceros, lo que permite a los usuarios del esquema de impresión ir más allá de las instancias Property, Feature, Option o ParameterInit definidas por las palabras clave del esquema de impresión. Se pueden agregar instancias de elementos de terceros a las definidas por las palabras clave del esquema de impresión; sin embargo, las instancias privadas de Propiedad de terceros deben pertenecer a un espacio de nombres que esté claramente asociado con el tercero que creó el espacio de nombres.
Soporte para imprimir ticket en Aspose.Page para Java
La API Aspose.Page para Java contiene un conjunto de clases que encapsulan elementos definidos por las palabras clave del esquema de impresión. Debido a la importante cantidad de estas clases, en este artículo solo discutiremos algunas de las técnicas más comunes para manipular tickets de impresión en un documento XPS utilizando la API Aspose.Page. Comenzaremos analizando la creación de instancias de cada clase de característica que queremos incluir en el ticket impreso, seguido de una demostración de cómo incorporar estas características en un ticket impreso.
Especificación de la bandeja de entrada
La función JobInputBin identifica el contenedor de entrada instalado en un dispositivo o la lista completa de contenedores compatibles para un dispositivo. Permite la especificación del contenedor de entrada por trabajo. También existen las funciones DocumentInputBin y PageInputBin que permiten la especificación de la bandeja de entrada por documento y por página, respectivamente. Cualquier documento de Print Ticket debe incluir solo una de las tres características. Todos ellos se derivan de la clase InputBin y tienen constructores con la misma firma, por lo que usaremos JobInputBin con fines de demostración.
La línea de código Java.
1new JobInputBin(InputBin.InputBinOption.AutoSelect);
produce una función para un ticket de impresión a nivel de trabajo que indica a un dispositivo de impresión que elija automáticamente la mejor opción según la configuración.
La clase
InputBin.InputBinOption define campos estáticos que sirven como base para varias opciones de bandeja de entrada. Cada opción puede contener propiedades adicionales como
InputBin.BinType,
InputBin.FeedDirection,
InputBin.FeedFace,
InputBin.FeedType,
InputBin.MediaCapacity,
InputBin.MediaPath,
InputBin.MediaSizeAutoSense,
InputBin.MediaTypeAutoSense y
InputBin.MediaSheetCapacity. Para especificar estas propiedades, debe clonar la propiedad base y luego llamar al método add()
con una lista de las propiedades deseadas:
1new JobInputBin(InputBin.InputBinOption.Manual.clone().add(
2 InputBin.FeedFace.FaceDown, InputBin.FeedDirection.LongEdgeFirst, new InputBin.MediaSheetCapacity(100)));
Para ver la lista completa de valores de propiedades disponibles, consulte la Especificación del esquema de impresión y la sección correspondiente de Aspose.Page referencia API.
Especificación de la bandeja de salida
La función
JobOutputBin describe la bandeja de salida instalada en un dispositivo o la lista completa de bandejas compatibles para un dispositivo. Las palabras clave JobOutputBin
,
DocumentOutputBin y
PageOutputBin son mutuamente excluyentes; sólo se debe especificar uno en un único ticket impreso.
Cada opción puede incluir las propiedades
OutputBin.BinType y
OutputBin.MediaSheetCapacity. Por lo tanto, se puede crear una instancia de una característica JobOutputBin
de la siguiente manera:
1new JobOutputBin(new OutputBin.OutputBinOption(OutputBin.BinType.Sorter),
2 new OutputBin.OutputBinOption(OutputBin.BinType.Stacker, new OutputBin.MediaSheetCapacity(100)));
Especificación de la orientación de la página
La función PageOrientation define la orientación de la hoja de medios físicos. La lista de opciones disponibles se puede encontrar en la sección de clase PageOrientation.PageOrientationOption de la referencia de API. A continuación se muestra un ejemplo de cómo producir una instancia de esta característica:
1new PageOrientation(PageOrientation.PageOrientationOption.Landscape);
Especificación del modo dúplex para la salida
La función
JobDuplexAllDocumentsContiguamente describe las características dúplex de la salida. La función dúplex permite imprimir en ambas caras del soporte, con todos los documentos del trabajo dúplex de forma contigua. JobDuplexAllDocumentsContigufully
y
DocumentDuplex son mutuamente excluyentes y depende del controlador determinar cómo se manejan las restricciones entre estas palabras clave. La última palabra clave significa que cada documento del trabajo se imprime a doble cara por separado.
Hay
tres opciones disponibles para esta función: OneSided
, twoSidedLongEdge
y twoSidedShortEdge
. El primero no tiene propiedades y los otros dos están parametrizados con
Duplex.DuplexMode.
Por ejemplo, si desea indicar la impresión a dos caras para su archivo XPS de modo que la página se voltee en paralelo a MediaSizeHeight, puede hacerlo de la siguiente manera:
1new JobDuplexAllDocumentsContiguously(Duplex.DuplexOption.twoSidedLongEdge(Duplex.DuplexMode.Automatic));
Si prefiere la impresión a una cara, puede incluir la siguiente función en el ticket de impresión:
1new JobDuplexAllDocumentsContiguously(Duplex.DuplexOption.OneSided);
Especificación de la configuración de color para la salida
La función PageOutputColor describe las características de la configuración de color para la salida. Hay tres opciones disponibles para esta función: “Color”, “Escala de grises” y “Monocromo”, cada una con dos propiedades enteras: “DeviceBitsPerPixel” y “DriverBitsPerPixel”.
Si, por ejemplo, desea que su impresora a color imprima un archivo XPS en escala de grises, puede incluir la siguiente función en el ticket de impresión:
1new PageOutputColor(PageOutputColor.PageOutputColorOption.Grayscale(0, 8));
Trabajar con tickets impresos de diferentes niveles.
Si está trabajando con un archivo XPS creado por otra persona, es posible que deba ajustar su ticket de impresión en caso de que esté presente. Para recuperar un ticket de impresión a nivel de trabajo, simplemente puede llamar al método
getJobPrintTicket() del objeto XpsDocument
:
1JobPrintTicket pt = document.getJobPrintTicket();
Para recuperar un ticket de impresión para un documento particular dentro del archivo XPS, debe usar el método getDocumentPrintTicket():
1DocumentPrintTicket pt = document.getDocumentPrintTicket(<n>);
donde <n>
es el número del documento dentro del archivo XPS.
Para recuperar un ticket de impresión para una página particular dentro del archivo XPS, debe usar el método getPagePrintTicket():
1PagePrintTicket pt = document.getPagePrintTicket(<m>, <n>);
donde <m>
es el número del documento dentro del archivo XPS y <n>
es el número de la página dentro del m-ésimo documento.
Una vez que haya recuperado una instancia de ticket de impresión y no sea igual a “nulo”, puede agregar sus funciones construidas como se muestra en las secciones anteriores:
1pt.add(<features>);
donde <características>
es una matriz de características de longitud variable adecuadas para el ticket de impresión del nivel específico. Si el ticket de impresión anterior ya tenía algunas de las funciones que está intentando agregar, las nuevas instancias las sobrescribirán.
Si prefiere no modificar los tickets de impresión existentes sino asignar una instancia completamente nueva, como es el caso de un nuevo archivo XPS, entonces, para el ticket de impresión a nivel de trabajo, debe utilizar el método setJobPrintTicket():
1document.setJobPrintTicket(new JobPrintTicket(<features>));
donde <características>
es una matriz de longitud variable de características adecuadas para el ticket de impresión a nivel de trabajo.
Si desea asignar un ticket de impresión para un documento en particular dentro del archivo XPS, use el método
setDocumentPrintTicket():
1document.setDocumentPrintTicket(<n>, new DocumentPrintTicket(<features>));
Aquí, <n>
representa el número del documento dentro del archivo XPS, y <features>
es una matriz de características de longitud variable adecuada para el ticket de impresión a nivel de documento.
Finalmente, en caso de que quieras asignar un ticket de impresión para una página particular dentro del archivo XPS, debes usar el método setPagePrintTicket():
1document.setPagePrintTicket(<m>, <n>, new PagePrintTicket(<features>));
donde <m>
es el número del documento dentro del archivo XPS, <n>
es el número de la página dentro del m-ésimo documento y <features>
es una matriz de longitud variable de características adecuadas para el ticket de impresión a nivel de página.
A continuación se muestra el ejemplo de código completo para el ticket de impresión a nivel de trabajo del proyecto de ejemplo Aspose.Page para Java: