Pliki TeX służą do składu różnych dokumentów i książek zawierających tekst, symbole i wyrażenia arytmetyczne. Ponadto pliki te mogą generować dane wyjściowe, takie jak PDF, XPS i różne formaty obrazów. W tym artykule dowiesz się, jak konwertować pliki TeX do formatu XPS i PDF za pomocą C++.
- C++ API do konwersji TeX-a do formatu PDF i XPS
- Konwertuj TeX na format XPS za pomocą C++
- Konwersja TeX-a do formatu PDF przy użyciu C++
- Konwersja katalogu TeX ZIP do katalogu PDF ZIP przy użyciu C++
C++ API do konwersji TeX-a do formatu PDF i XPS
Aspose.TeX for C++ to biblioteka C++ do pracy z plikami TeX bez konieczności instalowania dodatkowego oprogramowania. Interfejs API umożliwia składanie plików TeX i generowanie danych wyjściowych w formatach takich jak XPS, PDF, PNG, JPEG, TIFF, [ BMP 10. Możesz zainstalować API przez NuGet lub pobrać bezpośrednio z sekcji Downloads.
PM> Install-Package Aspose.TeX.Cpp
Konwertuj TeX na format XPS za pomocą C++
Możesz konwertować pliki TeX do formatu XPS w zaledwie kilku wierszach kodu. Aby to osiągnąć, wykonaj czynności podane poniżej.
- Utwórz instancję klasy TeXOptions, używając metody [TeXConfig::ObjectTeX(System::SharedPtrAspose::TeX::ResourceProviders::FormatProvider formatProvider = nullptr) 14 funkcja członkowska.
- Określ wejściowe i wyjściowe katalogi robocze.
- Określ strumień konsoli lub pamięci jako terminal wyjściowy.
- Zapisz wyjściowy plik XPS, używając TeX::Typeset(System::String path, System::SharedPtrPresentation::Device urządzenie, System::SharedPtr options) z instancją klasy XpsDevice.
Poniższy przykładowy kod pokazuje, jak przekonwertować plik TeX do formatu XPS przy użyciu języka C++.
// Utwórz opcje składu dla domyślnego formatu ObjectTeX w rozszerzeniu silnika ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());
// Określ katalog roboczy systemu plików dla danych wejściowych.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));
// Określ katalog roboczy systemu plików dla danych wyjściowych.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));
// Określ konsolę jako terminal wyjściowy.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// Domyślna. Nie trzeba określać.
// Określ strumień pamięci jako terminal wyjściowy, jeśli nie chcesz, aby dane wyjściowe terminala były zapisywane w konsoli.
//options.TerminalOut = new OutputMemoryTerminal();
// Uruchom skład.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<XpsDevice>(), options);
// Aby uzyskać dalsze wyniki, napisz.
options->get_TerminalOut()->get_Writer()->WriteLine();
Konwersja TeX-a do formatu PDF przy użyciu C++
Poniżej przedstawiono kroki konwersji plików TeX do formatu PDF.
- Utwórz instancję klasy TeXOptions, używając metody [TeXConfig::ObjectTeX(System::SharedPtrAspose::TeX::ResourceProviders::FormatProvider formatProvider = nullptr) 18 funkcja członkowska.
- Określ wejściowe i wyjściowe katalogi robocze.
- Określ strumień konsoli lub pamięci jako terminal wyjściowy.
- Przekaż instancję klasy PdfSaveOptions do metody TeXOptions->setSaveOptions(System::SharedPtrAspose::TeX::Presentation::SaveOptions wartość) metoda.
- Zapisz wyjściowy plik PDF za pomocą TeX::Typeset(System::String path, System::SharedPtrPresentation::Device urządzenie, System::SharedPtr options) z instancją klasy PdfDevice.
Poniższy przykładowy kod pokazuje, jak przekonwertować plik TeX do formatu PDF przy użyciu języka C++.
// Utwórz opcje składu dla domyślnego formatu ObjectTeX w rozszerzeniu silnika ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());
// Określ katalog roboczy systemu plików dla danych wejściowych.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));
// Określ katalog roboczy systemu plików dla danych wyjściowych.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));
// Określ konsolę jako terminal wyjściowy.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// Domyślna. Nie trzeba określać.
// Określ strumień pamięci jako terminal wyjściowy, jeśli nie chcesz, aby dane wyjściowe terminala były zapisywane w konsoli.
//options.TerminalOut = new OutputMemoryTerminal();
// Ustaw opcję PdfSave
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
// Uruchom skład.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);
// Aby uzyskać dalsze wyniki, napisz.
options->get_TerminalOut()->get_Writer()->WriteLine();
Konwersja katalogu TeX ZIP do katalogu PDF ZIP przy użyciu C++
Aby za jednym razem przekonwertować wiele plików TeX do formatu PDF, możesz dodać pliki TeX do archiwum ZIP i przekonwertować je na spakowane pliki PDF. Poniżej przedstawiono kroki, aby to osiągnąć.
- Załaduj wejściowe i wyjściowe archiwa ZIP w strumieniach.
- Utwórz instancję klasy TeXOptions, używając metody [TeXConfig::ObjectTeX(System::SharedPtrAspose::TeX::ResourceProviders::FormatProvider formatProvider = nullptr) 24 funkcja członkowska.
- Ustaw katalogi robocze wejścia i wyjścia.
- Określ strumień konsoli lub pamięci jako terminal wyjściowy.
- Przekaż instancję klasy PdfSaveOptions do metody TeXOptions->setSaveOptions(System::SharedPtrAspose::TeX::Presentation::SaveOptions wartość) metoda.
- Zapisz spakowany wyjściowy plik PDF, używając TeX::Typeset(System::String path, System::SharedPtrPresentation::Device urządzenie, System::SharedPtr options) z instancją klasy PdfDevice.
Poniższy przykładowy kod pokazuje, jak przekonwertować archiwum TeX ZIP na archiwum ZIP PDF za pomocą C++.
// Otwórz źródłowy plik ZIP w strumieniu
System::SharedPtr<System::IO::Stream> inZipStream = System::IO::File::Open(System::IO::Path::Combine(u"SourceDirectory", u"zip-in.zip"), System::IO::FileMode::Open);
// Czyszczenie zasobów w instrukcji „używanie”.
System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream });
// ------------------------------------------------------------------------
try {
// Otwórz wyjściowy plik ZIP w strumieniu
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);
// Czyszczenie zasobów w instrukcji „używanie”.
System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
// ------------------------------------------------------------------------
try
{
// Utwórz opcje składu dla domyślnego formatu ObjectTeX w rozszerzeniu silnika ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());
// Określ katalog roboczy archiwum ZIP dla danych wejściowych.
options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));
// Określ katalog roboczy archiwum ZIP dla danych wyjściowych.
options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));
// Określ konsolę jako terminal wyjściowy.
options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
// Domyślna. Nie trzeba określać.
// Utwórz i określ opcje zapisywania.
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
// Uruchom skład.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);
// Aby kolejne dane wyjściowe wyglądały jak write.
options->get_TerminalOut()->get_Writer()->WriteLine();
// Zakończ wyjściowe archiwum 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());
}
Uzyskaj bezpłatną licencję
Możesz wypróbować interfejs API bez ograniczeń ewaluacyjnych, prosząc o bezpłatną licencję tymczasową.
Wniosek
W tym artykule nauczyłeś się konwertować pliki TeX do formatu XPS i PDF za pomocą C++. Ponadto nauczyłeś się konwertować pliki TeX w archiwum ZIP na spakowane pliki PDF. Aspose.TeX for C++ zapewnia wiele dodatkowych funkcji do pracy z plikami TeX. Możesz szczegółowo zapoznać się z interfejsem API, odwiedzając oficjalną dokumentację. W przypadku jakichkolwiek pytań prosimy o kontakt na naszym bezpłatnym forum pomocy technicznej.