Nyomtatási jegyek hozzáadása és kezelése

XPS-fájlok létrehozása, szerkesztése, csatolása és nyomtatási jegyek beszerzése a C++ segítségével

 

XPS-fájlok esetén a nyomtatási jegy egy olyan utasításkészlet, amely meghatározza a dokumentum nyomtatásának módját. Ez lényegében egy konfigurációs fájl, amely a következőkről tartalmaz információkat:

  • A nyomtatott oldalak méretei és tájolása.
  • A papírtálcát vagy az adagolót kell használni.
  • A nyomtatott anyag felbontása és színmélysége.
  • Nyomtasson-e a papír mindkét oldalára.
  • Az oldalak nyomtatásának és leválogatásának sorrendje.
  • Minden további befejezési lehetőség, például tűzés, kötés vagy lyukasztás.

A nyomtatási jegyek megértésével és felhasználásával optimalizálhatja a nyomtatási folyamatot, és elérheti a kívánt eredményt XPS-dokumentumai számára.

Az Aspose.Page API megoldás a különféle egyéb funkciók mellett lehetővé teszi a nyomtatási jegyekkel való munkát. Itt olyan információkat talál, amelyek elmagyarázzák, hogyan hozhatja létre, szerkesztheti, szerezheti be és kapcsolhatja össze őket. Az XPS-fájlok nyomtatási jegyeinek kezeléséhez a következőkre van szükségünk:

-

Az Aspose.Page a C++ API-hoz, amely funkciókban gazdag, hatékony és könnyen használható dokumentumkezelés és konvertálás.

-

Nyissa meg a NuGet csomagkezelőt, keresse meg az Aspose.Page-t, és telepítse. A következő parancsot is használhatja a Package Manager konzolból.

Package Manager Console Command

    PM> Install-Package Aspose.Page

Egyéni C++ nyomtatási jegy létrehozásának lépései.

  1. Állítsa be a dokumentumok könyvtárának elérési útját.
  2. Hozzon létre XPS-fájlt az XpsDocument Class használatával.
  3. Adjon hozzá egyéni nyomtatási jegyet a munkához a JobPrintTicket konstruktor segítségével.
  4. Adjon hozzá egy egyéni oldalparaméter-inicializálót és egy egyéni oldalfelbontási beállítást a jegyhez.
  5. Mentse el a módosított XPS-dokumentumot a XPsDocument.Save() módszerrel.
Hozzon létre egyéni nyomtatási jegyet
// 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());
}
}

Az XPS-nyomtatási jegyek C++-on keresztüli szerkesztésének lépései.

  1. Állítsa be a dokumentumok könyvtárának elérési útját.
  2. Nyissa meg az XPS-dokumentumot nyomtatási jegyekkel az XpsDocument Class használatával.
  3. A nem szükséges paraméterek jegyből való eltávolításához használja a Remove() módszert.
  4. Mentse el a dokumentumot a megváltozott feladat nyomtatási jegyével a XPsDocument.Save() módszerrel.
Nyomtatott jegy szerkesztése
// 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");

A nyomtatott jegyek beszerzésének lépései C++-on keresztül.

  1. Állítsa be a dokumentumok könyvtárának elérési útját.
  2. Nyissa meg az XPS-dokumentumot nyomtatási jegyekkel az XpsDocument Class használatával.
  3. Hozzon létre egy munka nyomtatási jegyet a JobPrintTicket Constructor segítségével.
  4. Hozzon létre dokumentumnyomtatási jegyet a GetDocumentPrintTicket() módszerrel.
  5. Szerezze meg az oldalnyomtatási jegyet a GetPagePrintTicket() módszerrel.
  6. Mentse el a dokumentumot a megváltozott munka nyomtatási jegyével a XPsDocument.Save() módszerrel.
Nyomtasson jegyet
// 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));

Az XPS-fájl nyomtatási jegyeinek C++-on keresztüli összekapcsolásának lépései.

  1. Állítsa be a dokumentumok könyvtárának elérési útját.
  2. Hozzon létre egy új XPS-fájlt, és nyissa meg az XPS-dokumentumot nyomtatási jegyekkel az XpsDocument Class használatával.
  3. Nyissa meg az XPS-dokumentumot nyomtatási jegyekkel az XpsDocument Class használatával
  4. Kapcsolja össze a munka nyomtatási jegyét a JobPrintTicket Constructorral.
  5. Kapcsolja össze a dokumentumnyomtatási jegyet a GetDocumentPrintTicket() és a SetDocumentPrintTicket() módszerekkel
  6. Kapcsolja össze az oldalnyomtatási jegyet a GetPagePrintTicket() és a SetPagePrintTicket() módszerekkel.
  7. Mentse el a dokumentumot a megváltozott munka nyomtatási jegyével a XPsDocument.Save() módszerrel.
Nyomtatott jegy összekapcsolása
// 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 Mi a XPS fájlformátum

Az XPS formátum hasonló a PDF formátumhoz. Mindkettő oldalleíró nyelv (PDL) formátum. Az EPS HTML alapú, és nem PostScript nyelven. Az .eps fájl képes tartalmazni a dokumentum szerkezetének jelölését, valamint a dokumentum megjelenésére vonatkozó információkat. A dokumentum nyomtatására és renderelésére vonatkozó utasításokat is tartalmazzák. A formátum jellemzője, hogy rögzíti a dokumentum leírását, ami azt jelenti, hogy ugyanúgy fog kinézni, függetlenül attól, hogy ki és milyen operációs rendszerről nyitja meg.