Agregar y manipular boletos impresos

Cree, edite, vincule y obtenga tickets de impresión de archivos XPS a través de C++

 

En el contexto de los archivos XPS, un ticket de impresión es un conjunto de instrucciones que especifican cómo se debe imprimir un documento. Es esencialmente un archivo de configuración que contiene información sobre:

  • Las dimensiones y orientación de las páginas impresas.
  • Se va a utilizar la bandeja o alimentador de papel.
  • La resolución y profundidad de color de la salida impresa.
  • Si se debe imprimir en ambas caras del papel.
  • El orden en que se deben imprimir y clasificar las páginas.
  • Cualquier opción de acabado adicional, como grapado, encuadernación o perforación.

Al comprender y utilizar los tickets de impresión, puede optimizar el proceso de impresión y lograr el resultado deseado para sus documentos XPS.

La solución API Aspose.Page, entre otras características diferentes, permite trabajar con tickets impresos. Aquí encontrará información que explica cómo crearlos, editarlos, obtenerlos y vincularlos. Para manipular tickets de impresión de archivos XPS, necesitamos:

-

Aspose.Page para C++ API, que es una manipulación y conversión de documentos rica en funciones, potente y fácil de usar.

-

Abra el administrador de paquetes NuGet, busque Aspose.Page e instálelo. También puede utilizar el siguiente comando desde la Consola del Administrador de paquetes.

Package Manager Console Command

    PM> Install-Package Aspose.Page

Pasos para crear un ticket de impresión personalizado en C++.

  1. Establezca la ruta al directorio de documentos.
  2. Cree un archivo XPS utilizando la Clase XpsDocument .
  3. Agregue un ticket de impresión de trabajo personalizado utilizando el constructor JobPrintTicket .
  4. Agregue un inicializador de parámetro de página personalizado y una opción de resolución de página personalizada al ticket.
  5. Guarde el documento XPS modificado utilizando el método XPsDocument.Save() .
Crear un ticket de impresión personalizado
// The path to the documents directory.
System::String dir = RunExamples::GetDataDir_WorkingWithPrintTickets();
// Create new XPS document
{
System::SharedPtr<XpsDocument> document = System::MakeObject<XpsDocument>();
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ document});
// ------------------------------------------
try
{
// Set a custom job-level print ticket
document->set_JobPrintTicket(System::MakeObject<JobPrintTicket>(
System::MakeArray<System::SharedPtr<IJobPrintTicketItem>>({
// Specify input bin.
System::MakeObject<JobInputBin>(System::MakeArray<System::SharedPtr<InputBin::IInputBinItem>>({InputBin::InputBinOption::Manual->Clone()->Add(System::MakeArray<System::SharedPtr<InputBin::IInputBinOptionItem>>(
{InputBin::FeedFace::FaceDown, InputBin::FeedDirection::LongEdgeFirst, System::MakeObject<InputBin::MediaSheetCapacity>(100)}))})),
// Specify output bin.
System::MakeObject<JobOutputBin>(System::MakeArray<System::SharedPtr<OutputBin::IOutputBinItem>>({
System::MakeObject<OutputBin::OutputBinOption>(System::MakeArray<System::SharedPtr<OutputBin::IOutputBinOptionItem>>(
{OutputBin::BinType::Sorter})),
System::MakeObject<OutputBin::OutputBinOption>(System::MakeArray<System::SharedPtr<OutputBin::IOutputBinOptionItem>>(
{OutputBin::BinType::Stacker, System::MakeObject<OutputBin::MediaSheetCapacity>(100)}))})),
// Specify page orientation.
System::MakeObject<PageOrientation>(System::MakeArray<System::SharedPtr<PageOrientation::PageOrientationOption>>(
{PageOrientation::PageOrientationOption::Landscape})),
// Specify duplex mode for the output.
System::MakeObject<JobDuplexAllDocumentsContiguously>(System::MakeArray<System::SharedPtr<Duplex::DuplexOption>>(
{Duplex::DuplexOption::TwoSidedLongEdge(Duplex::DuplexMode::Automatic)})),
// Specify the color settings for the output.
System::MakeObject<PageOutputColor>(System::MakeArray<System::SharedPtr<PageOutputColor::IPageOutputColorItem>>(
{PageOutputColor::PageOutputColorOption::Grayscale(0, 8)}))})));
// Save the document with the custom job-level print ticket.
document->Save(dir + u"output1.xps");
}
catch(...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}

Pasos para editar tickets de impresión XPS a través de C++.

  1. Establezca la ruta al directorio de documentos.
  2. Abra un documento XPS con tickets impresos utilizando la XpsDocument Class.
  3. Para eliminar los parámetros no necesarios del ticket, utilice el método Remove() .
  4. Guarde el documento con el ticket de impresión del trabajo modificado mediante el método XPsDocument.Save().
Editar un ticket impreso
// The path to the documents directory.
System::String dir = RunExamples::GetDataDir_WorkingWithPrintTickets();
// Open XPS Document with print tickets
System::SharedPtr<XpsDocument> xDocs = System::MakeObject<XpsDocument>(dir + u"input3.xps");
System::SharedPtr<JobPrintTicket> pt = xDocs->get_JobPrintTicket();
// Remove some parameters from job print ticket
pt->Remove(System::MakeArray<System::String>({u"ns0000:PageDevmodeSnapshot", u"ns0000:JobInterleaving", u"ns0000:JobImageType"}));
// Add some parameters to job print ticket
pt->Add(System::MakeArray<System::SharedPtr<IJobPrintTicketItem>>({System::MakeObject<JobCopiesAllDocuments>(2),
System::MakeObject<PageMediaSize>(System::MakeArray<System::SharedPtr<PageMediaSize::IPageMediaSizeItem>>({PageMediaSize::PageMediaSizeOption::ISOA4}))}));
// Save the document with changed job print ticket.
xDocs->Save(dir + u"output3.xps");

Pasos para obtener tickets impresos mediante C++.

  1. Establezca la ruta al directorio de documentos.
  2. Abra un documento XPS con tickets impresos utilizando la XpsDocument Class.
  3. Cree el ticket de impresión del trabajo con el constructor JobPrintTicket.
  4. Cree el ticket de impresión del documento utilizando el método GetDocumentPrintTicket() .
  5. Obtenga el ticket de impresión de la página utilizando el método GetPagePrintTicket() .
  6. Guarde el documento con el ticket de impresión del trabajo modificado mediante el método XPsDocument.Save().
Obtenga un boleto impreso
// The path to the documents directory.
System::String dir = RunExamples::GetDataDir_WorkingWithPrintTickets();
// Open XPS Document without print tickets
System::SharedPtr<XpsDocument> xDocs = System::MakeObject<XpsDocument>(dir + u"input1.xps");
// Get job print ticket
System::SharedPtr<JobPrintTicket> jobPrintTicket = xDocs->get_JobPrintTicket();
// must be null for this document
// Get document print ticket
System::SharedPtr<DocumentPrintTicket> docPrintTicket = xDocs->GetDocumentPrintTicket(1);
// must be null for this document
// Get page print ticket
System::SharedPtr<PagePrintTicket> pagePrintTicket = xDocs->GetPagePrintTicket(1, 1);
// must be null for this document
// Save the document. Default print tickets are automatically added to document while saving.
xDocs->Save(dir + u"output1.xps");
// Open saved earlier XPS Document with print tickets
System::SharedPtr<XpsDocument> xDocs2 = System::MakeObject<XpsDocument>(dir + u"output1.xps");
// Print tickets must not be null
System::Console::WriteLine(xDocs2->get_JobPrintTicket());
System::Console::WriteLine(xDocs2->GetDocumentPrintTicket(1));
System::Console::WriteLine(xDocs2->GetPagePrintTicket(1, 1));

Pasos para vincular tickets de impresión para el archivo XPS a través de C++.

  1. Establezca la ruta al directorio de documentos.
  2. Cree un nuevo archivo XPS y abra el documento XPS con boletos de impresión usando XpsDocument Class.
  3. Abra el documento XPS con tickets impresos usando XpsDocument Class
  4. Vincule el ticket de impresión del trabajo con el constructor JobPrintTicket.
  5. Vincule el ticket de impresión del documento utilizando los métodos GetDocumentPrintTicket() y SetDocumentPrintTicket()
  6. Vincule el ticket de impresión de la página utilizando los métodos GetPagePrintTicket() y SetPagePrintTicket() .
  7. Guarde el documento con el ticket de impresión del trabajo modificado mediante el método XPsDocument.Save().
Vincular un ticket impreso
// The path to the documents directory.
System::String dir = RunExamples::GetDataDir_WorkingWithPrintTickets();
// Create new XPS document
System::SharedPtr<XpsDocument> xDocs1 = System::MakeObject<XpsDocument>();
// Open XPS Document with print tickets
System::SharedPtr<XpsDocument> xDocs2 = System::MakeObject<XpsDocument>(dir + u"input2.xps");
// Link job print ticket
xDocs1->set_JobPrintTicket(xDocs2->get_JobPrintTicket());
// Link document print ticket
xDocs1->SetDocumentPrintTicket(1, xDocs2->GetDocumentPrintTicket(2));
// Link page print ticket
xDocs1->SetPagePrintTicket(1, 1, xDocs2->GetPagePrintTicket(3, 2));
// Save the document with linked print tickets.
xDocs1->Save(dir + u"output1.xps");

XPS Qué es XPS Formato de archivo

El formato XPS es similar al formato PDF. Ambos son formatos de lenguaje de descripción de página (PDL). EPS se basa en HTML y no en lenguaje PostScript. El archivo .eps puede contener un marcado de la estructura del documento junto con la información sobre cómo se vería el documento. También hay instrucciones adicionales sobre cómo imprimir y renderizar el documento. La característica del formato es que corrige la descripción del documento, lo que significa que se verá igual sin importar quién y desde qué sistema operativo lo abra.