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
- Převeďte TeX do formátu XPS pomocí C++
- Převod TeXu do formátu PDF pomocí C++
- Převeďte adresář TeX ZIP na adresář PDF ZIP 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ů.
- Vytvořte instanci třídy TeXOptions pomocí TeXConfig::ObjectTeX(System::SharedPtrAspose::TeX::ResourceProviders::FormatProvider formatProvider = nullptr) členská funkce.
- Zadejte vstupní a výstupní pracovní adresáře.
- Jako výstupní terminál zadejte konzolu nebo paměťový tok.
- Uložte výstupní soubor XPS pomocí TeX::Typeset(System::String path, System::SharedPtrPresentation::Device zařízení, System::SharedPtr options) metoda s instancí třídy XpsDevice.
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.
- Vytvořte instanci třídy TeXOptions pomocí TeXConfig::ObjectTeX(System::SharedPtrAspose::TeX::ResourceProviders::FormatProvider formatProvider = nullptr) členská funkce.
- Zadejte vstupní a výstupní pracovní adresáře.
- Jako výstupní terminál zadejte konzolu nebo paměťový tok.
- Předejte instanci třídy PdfSaveOptions do TeXOptions->setSaveOptions(System::SharedPtrAspose::TeX::Presentation::SaveOptions hodnota) metoda.
- Uložte výstupní soubor PDF pomocí TeX::Typeset(System::String path, System::SharedPtrPresentation::Device zařízení, System::SharedPtr options) metoda s instancí třídy PdfDevice.
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.
- Načtěte vstupní a výstupní archivy ZIP ve streamech.
- Vytvořte instanci třídy TeXOptions pomocí TeXConfig::ObjectTeX(System::SharedPtrAspose::TeX::ResourceProviders::FormatProvider formatProvider = nullptr) členská funkce.
- Nastavte vstupní a výstupní pracovní adresáře.
- Jako výstupní terminál zadejte konzolu nebo paměťový tok.
- Předejte instanci třídy PdfSaveOptions do TeXOptions->setSaveOptions(System::SharedPtrAspose::TeX::Presentation::SaveOptions hodnota) metoda.
- Uložte zazipovaný výstupní soubor PDF pomocí TeX::Typeset(System::String path, System::SharedPtrPresentation::Device zařízení, System::SharedPtr options) metoda s instancí třídy PdfDevice.
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.