Konvertera TeX till PDF- eller XPS-fil Programmatiskt med C++

TeX-filer används för att typsätta olika dokument och böcker som innehåller text, symboler och aritmetiska uttryck. Dessutom kan dessa filer generera utdata som PDF, XPS och olika bildformat. I den här artikeln kommer du att lära dig hur du konverterar TeX-filer till XPS- och PDF-format med C++.

C++ API för att konvertera TeX till PDF- och XPS-format

Aspose.TeX for C++ är ett C++-bibliotek för att arbeta med TeX-filer utan att ytterligare programvara behöver installeras. API:et låter dig sätta TeX-filer och generera utdata i format som XPS, PDF, PNG, JPEG, TIFF, BMP. Du kan antingen installera API:et genom NuGet eller ladda ner det direkt från avsnittet Nedladdningar.

PM> Install-Package Aspose.TeX.Cpp

Konvertera TeX till XPS-format med C++

Du kan konvertera TeX-filer till XPS-format på bara några rader kod. För att uppnå detta, följ stegen nedan.

Följande exempelkod visar hur man konverterar en TeX-fil till XPS-format med C++.

// Skapa typsättningsalternativ för standard ObjectTeX-format på ObjectTeX-motortillägget.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

// Ange en arbetskatalog för filsystemet för inmatning.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));

// Ange en arbetskatalog för filsystemet för utdata.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

// Ange konsol som utgångsterminal.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// Standard. Inget behov av att specificera.
// Ange minnesström som utgångsterminal om du inte vill att terminalutgången ska skrivas till konsolen.
//options.TerminalOut = new OutputMemoryTerminal();

// Kör typsättning.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<XpsDevice>(), options);

// För ytterligare utdata att se skriv.
options->get_TerminalOut()->get_Writer()->WriteLine();

Konvertera TeX till PDF-format med C++

Följande är stegen för att konvertera TeX-filer till PDF-format.

Följande exempelkod visar hur man konverterar en TeX-fil till PDF-format med C++.

// Skapa typsättningsalternativ för standard ObjectTeX-format på ObjectTeX-motortillägget.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

// Ange en arbetskatalog för filsystemet för inmatning.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));

// Ange en arbetskatalog för filsystemet för utdata.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

// Ange konsol som utgångsterminal.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// Standard. Inget behov av att specificera.
// Ange minnesström som utgångsterminal om du inte vill att terminalutgången ska skrivas till konsolen.
//options.TerminalOut = new OutputMemoryTerminal();

// Ställ in PdfSaveOptions
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());

// Kör typsättning.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

// För ytterligare utdata att se skriv.
options->get_TerminalOut()->get_Writer()->WriteLine();

Konvertera TeX ZIP-katalog till PDF ZIP-katalog med C++

För att konvertera flera TeX-filer till PDF-format på en gång kan du lägga till TeX-filerna i ett ZIP-arkiv och konvertera dem till zippade PDF-filer. Följande är stegen för att uppnå detta.

Följande exempelkod visar hur man konverterar TeX ZIP-arkiv till PDF ZIP-arkiv med C++.

// Öppna källzip-filen i en ström
System::SharedPtr<System::IO::Stream> inZipStream = System::IO::File::Open(System::IO::Path::Combine(u"SourceDirectory", u"zip-in.zip"), System::IO::FileMode::Open);
// Rensa resurser under "använder" uttalande
System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream });
// ------------------------------------------

try {
    // Öppna utdata-zip-filen i en ström
    System::SharedPtr<System::IO::Stream> outZipStream = System::IO::File::Open(System::IO::Path::Combine(u"OutputDirectory", u"zip-pdf-out.zip"), System::IO::FileMode::Create);
    // Rensa resurser under "använder" uttalande
    System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
    // ------------------------------------------

    try
    {
        // Skapa typsättningsalternativ för standard ObjectTeX-format på ObjectTeX-motortillägget.
        System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

        // Ange en ZIP-arkivarbetskatalog för inmatning.
        options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));

        // Ange en ZIP-arkivarbetskatalog för utdata.
        options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));

        // Ange konsol som utgångsterminal.
        options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
        // Standard. Inte nödvändigt att specificera.

        // Skapa och ange sparalternativ.
        options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());

        // Kör typsättning.
        Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

        // För att följa utdata ska se skriv. 
        options->get_TerminalOut()->get_Writer()->WriteLine();

        // Slutför utdata ZIP-arkiv.
        (System::DynamicCast<Aspose::TeX::IO::OutputZipDirectory>(options->get_OutputWorkingDirectory()))->Finish();
    }
    catch (...)
    {
        __dispose_guard_0.SetCurrentException(std::current_exception());
    }
}
catch (...)
{
    __dispose_guard_1.SetCurrentException(std::current_exception());
}

Skaffa en gratis licens

Du kan prova API utan utvärderingsbegränsningar genom att begära en gratis tillfällig licens.

Slutsats

I den här artikeln har du lärt dig hur du konverterar TeX-filer till XPS- och PDF-format med C++. Dessutom har du lärt dig hur du konverterar TeX-filer i ett ZIP-arkiv till zippade PDF-filer. Aspose.TeX för C++ tillhandahåller många ytterligare funktioner för att arbeta med TeX-filer. Du kan utforska API:et i detalj genom att besöka den officiella dokumentationen. Om du har några frågor är du välkommen att kontakta oss på vårt gratis supportforum.

Se även