Aggiungi e manipola i ticket di stampa
Crea, modifica, collega e ottieni ticket di stampa di file XPS tramite C++
Nel contesto dei file XPS, un ticket di stampa è un insieme di istruzioni che specifica come stampare un documento. È essenzialmente un file di configurazione che contiene informazioni su:
- Le dimensioni e l’orientamento delle pagine stampate.
- È necessario utilizzare il vassoio o l’alimentatore della carta.
- La risoluzione e la profondità del colore dell’output stampato.
- Se stampare su entrambi i lati del foglio.
- L’ordine in cui le pagine devono essere stampate e fascicolate.
- Eventuali opzioni di finitura aggiuntive, come pinzatura, rilegatura o perforatura.
Comprendendo e utilizzando i ticket di stampa, è possibile ottimizzare il processo di stampa e ottenere il risultato desiderato per i documenti XPS.
La soluzione API Aspose.Page, tra le diverse altre funzionalità, consente di lavorare con i biglietti di stampa. Qui troverai informazioni che spiegano come crearli, modificarli, ottenerli e collegarli. Per manipolare i biglietti di stampa dei file XPS, abbiamo bisogno di:
-Aspose.Page per l'API C++ che è una manipolazione e conversione di documenti ricca di funzionalità, potente e facile da usare.
-Aprire il gestore pacchetti NuGet, cercare Aspose.Page e installarlo. Puoi anche utilizzare il seguente comando dalla Console di gestione pacchetti.
Package Manager Console Command
PM> Install-Package Aspose.Page
Passaggi per creare un ticket di stampa personalizzato C++.
- Imposta il percorso della directory dei documenti.
- Creare un file XPS utilizzando la XpsDocument Class .
- Aggiungere un ticket di stampa del lavoro personalizzato utilizzando il costruttore JobPrintTicket .
- Aggiungi un inizializzatore del parametro di pagina personalizzato e un’opzione di risoluzione della pagina personalizzata al ticket.
- Salvare il documento XPS modificato utilizzando il metodo XPsDocument.Save() .
Crea un biglietto stampato personalizzato
// 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()); | |
} | |
} |
Passaggi per modificare i ticket di stampa XPS tramite C++.
- Imposta il percorso della directory dei documenti.
- Apri il documento XPS con i ticket di stampa utilizzando la classe XpsDocument.
- Per rimuovere i parametri non necessari dal ticket utilizzare il metodo Remove() .
- Salvare il documento con il ticket di stampa del lavoro modificato mediante il metodo XPsDocument.Save().
Modifica un biglietto stampato
// 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"); |
Passaggi per ottenere biglietti stampati tramite C++.
- Imposta il percorso della directory dei documenti.
- Apri il documento XPS con i ticket di stampa utilizzando la XpsDocument Class.
- Creare il ticket di stampa del lavoro con il costruttore JobPrintTicket.
- Creare il ticket di stampa del documento utilizzando il metodo GetDocumentPrintTicket() .
- Ottieni il ticket di stampa della pagina utilizzando il metodo GetPagePrintTicket() .
- Salvare il documento con il ticket di stampa del lavoro modificato mediante il metodo XPsDocument.Save().
Ottieni un biglietto stampato
// 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)); |
Passaggi per collegare i ticket di stampa per il file XPS tramite C++.
- Imposta il percorso della directory dei documenti.
- Crea un nuovo file XPS e apri il documento XPS con i ticket di stampa utilizzando XpsDocument Class.
- Apri il documento XPS con i ticket di stampa utilizzando XpsDocument Class
- Collegare il ticket di stampa del lavoro con il costruttore JobPrintTicket.
- Collegare il ticket di stampa del documento utilizzando i metodi GetDocumentPrintTicket() e SetDocumentPrintTicket()
- Collegare il ticket di stampa della pagina utilizzando i metodi GetPagePrintTicket() e SetPagePrintTicket() .
- Salvare il documento con il ticket di stampa del lavoro modificato mediante il metodo XPsDocument.Save().
Collega un biglietto stampato
// 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 Cos'è il formato file XPS
Il formato XPS è simile al formato PDF. Entrambi sono formati PDL (Page Description Language). EPS è basato su HTML e non sul linguaggio PostScript. Il file .eps è in grado di contenere un markup della struttura del documento insieme alle informazioni sull'aspetto del documento. Ci sono anche istruzioni aggiunte su come stampare e renderizzare il documento. La caratteristica del formato è che corregge la descrizione del documento, il che significa che avrà lo stesso aspetto indipendentemente da chi e da quale sistema operativo lo apra.