Převeďte TeX na PDF nebo XPS soubor programově pomocí C++

Soubory TeX se používají pro sazbu různých dokumentů a knih obsahujících text, symboly a aritmetické výrazy. Kromě toho mohou tyto soubory generovat výstupy jako PDF, XPS a různé formáty obrázků. V tomto článku se dozvíte, jak převést soubory TeX do formátu XPS a PDF pomocí C++.

C++ API pro převod TeX do formátu PDF a XPS

Aspose.TeX for C++ je knihovna C++ pro práci se soubory TeX bez nutnosti instalace dalšího softwaru. API umožňuje sázet soubory TeX a generovat výstup ve formátech jako XPS, PDF, PNG, JPEG, TIFF, BMP. Rozhraní API můžete nainstalovat buď prostřednictvím NuGet, nebo si jej stáhnout přímo ze sekce Downloads.

PM> Install-Package Aspose.TeX.Cpp

Převeďte TeX do formátu XPS pomocí C++

Soubory TeX můžete převést do formátu XPS pomocí několika řádků kódu. Chcete-li toho dosáhnout, postupujte podle níže uvedených kroků.

Následující ukázkový kód ukazuje, jak převést soubor TeX do formátu XPS pomocí C++.

// Vytvořte možnosti sazby pro výchozí formát ObjectTeX na rozšíření enginu ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

// Zadejte pracovní adresář systému souborů pro vstup.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));

// Zadejte pracovní adresář systému souborů pro výstup.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

// Zadejte konzolu jako výstupní terminál.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// Výchozí. Není třeba specifikovat.
// Pokud nechcete, aby se výstup terminálu zapisoval do konzole, zadejte paměťový proud jako výstupní terminál.
//options.TerminalOut = new OutputMemoryTerminal();

// Spusťte sazbu.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<XpsDevice>(), options);

// Pro další výstup na pohled napište.
options->get_TerminalOut()->get_Writer()->WriteLine();

Převod TeXu do formátu PDF pomocí C++

Níže jsou uvedeny kroky pro převod souborů TeX do formátu PDF.

Následující ukázkový kód ukazuje, jak převést soubor TeX do formátu PDF pomocí C++.

// Vytvořte možnosti sazby pro výchozí formát ObjectTeX na rozšíření enginu ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

// Zadejte pracovní adresář systému souborů pro vstup.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));

// Zadejte pracovní adresář systému souborů pro výstup.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

// Zadejte konzolu jako výstupní terminál.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// Výchozí. Není třeba specifikovat.
// Pokud nechcete, aby se výstup terminálu zapisoval do konzole, zadejte paměťový proud jako výstupní terminál.
//options.TerminalOut = new OutputMemoryTerminal();

// Nastavte možnosti PdfSaveOptions
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());

// Spusťte sazbu.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

// Pro další výstup na pohled napište.
options->get_TerminalOut()->get_Writer()->WriteLine();

Převeďte adresář TeX ZIP na adresář PDF ZIP pomocí C++

Chcete-li najednou převést více souborů TeX do formátu PDF, můžete soubory TeX přidat do archivu ZIP a převést je na soubory PDF se zipem. Níže jsou uvedeny kroky, jak toho dosáhnout.

Následující ukázkový kód ukazuje, jak převést archiv TeX ZIP na archiv PDF ZIP pomocí C++.

// Otevřete zdrojový soubor zip ve streamu
System::SharedPtr<System::IO::Stream> inZipStream = System::IO::File::Open(System::IO::Path::Combine(u"SourceDirectory", u"zip-in.zip"), System::IO::FileMode::Open);
// Vymazání zdrojů pod příkazem 'používá se'
System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream });
// --------------------------------------------

try {
    // Otevřete výstupní soubor zip ve streamu
    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);
    // Vymazání zdrojů pod příkazem 'používá se'
    System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
    // --------------------------------------------

    try
    {
        // Vytvořte možnosti sazby pro výchozí formát ObjectTeX na rozšíření enginu ObjectTeX.
        System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

        // Zadejte pracovní adresář archivu ZIP pro vstup.
        options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));

        // Zadejte pracovní adresář archivu ZIP pro výstup.
        options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));

        // Zadejte konzolu jako výstupní terminál.
        options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
        // Výchozí. Není nutné specifikovat.

        // Vytvořte a určete možnosti uložení.
        options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());

        // Spusťte sazbu.
        Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

        // Aby výsledný výstup vypadal, napište. 
        options->get_TerminalOut()->get_Writer()->WriteLine();

        // Dokončete výstupní archiv ZIP.
        (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());
}

Získejte bezplatnou licenci

Rozhraní API můžete vyzkoušet bez omezení hodnocení tím, že požádáte o bezplatnou dočasnou licenci.

Závěr

V tomto článku jste se naučili, jak převést soubory TeX do formátu XPS a PDF pomocí C++. Dále jste se naučili, jak převádět soubory TeX v archivu ZIP na soubory ZIP ve formátu ZIP. Aspose.TeX for C++ poskytuje mnoho dalších funkcí pro práci se soubory TeX. Rozhraní API můžete podrobně prozkoumat na oficiální dokumentaci. V případě jakýchkoli dotazů nás neváhejte kontaktovat na našem bezplatném fóru podpory.

Viz také