Comporre TeX con I/O ZIP

Convertire TeX in PDF utilizzando archivi ZIP come input e output. API per C++

 

Il linguaggio TeX è uno strumento di composizione che consente di creare documenti professionali senza preoccuparsi della formattazione. Con TeX, si inserisce testo normale contenente frammenti di testo di un documento insieme a comandi che controllano l’output. All’uscita si otterrà un file formattato nel formato desiderato (specificato). Per una migliore comprensione degli input e degli output TeX, fare riferimento alla documentazione di TeX.

TeX è anche un sistema potente e avanzato, ma non è ampiamente utilizzato al di fuori degli ambienti accademici e scientifici. Il PDF, d’altra parte, è un formato portatile che può essere facilmente visualizzato sulla maggior parte dei dispositivi ed è più ampiamente accettato. La capacità di leggere i PDF è presente su ogni dispositivo, nella maggior parte dei browser moderni. La conversione di TeX in PDF consente di condividere i documenti con un pubblico più vasto e fornisce un formato più accessibile per coloro che non dispongono di software specializzati. Inoltre, il PDF offre numerosi vantaggi rispetto a TeX, come una migliore resa dei caratteri, il supporto per l’interattività e un controllo più semplice delle dimensioni e del layout della pagina.

Il codice C++ riportato di seguito compone un file TeX, creando un PDF, che viene poi salvato in un archivio ZIP sul file system locale. Per completare questa attività, utilizzare l’API Aspose.TeX per C++, uno strumento di elaborazione e conversione di documenti ricco di funzionalità, potente e facile da usare. Per installare l’API, aprire il gestore pacchetti NuGet e cercare Aspose.TeX.Cpp. In alternativa, è possibile utilizzare il seguente comando dalla Console del gestore pacchetti:

Package Manager Console Command

PM> Install-Package Aspose.TeX.Cpp

Nel codice sottostante, TeX preleva il file di input principale da un archivio ZIP, lo converte in un PDF, che viene scritto in un altro archivio ZIP. Seguire le linee guida:

  1. Aprire uno stream contenente un archivio ZIP che fungerà da directory di lavoro di input. Facoltativamente, è possibile specificare una sottodirectory nell’archivio. In caso contrario, il file verrà cercato in tutto l’archivio.
  2. Creare uno stream di file per un nuovo archivio ZIP che funga da directory di lavoro di output.
  3. Creare le opzioni di composizione per il formato Object TeX sull’estensione del motore Object TeX.
  4. Specificare le directory di lavoro dell’archivio ZIP per l’input e l’output utilizzando le classi InputZipDirectory e OutputZipDirectory .
  5. Specificare la console come terminale di output.
  6. Utilizzando la classe PdfSaveOptions , specificare le opzioni di salvataggio per le opzioni di composizione.
  7. Istanziare la classe TeXJob passando il nome del file di input principale, un oggetto PdfDevice appena creato e le opzioni di composizione come argomenti. Eseguire la conversione chiamando il metodo Run().
  8. Finalizzare l’archivio ZIP di output.

Esempio di codice C++: Conversione di TeX in PDF con input e output ZIP

using Aspose::TeX::IO;
using Aspose::TeX::Presentation::Pdf;
// Open a stream on a ZIP archive that will serve as the input working directory.
System::SharedPtr<System::IO::Stream> inZipStream =
    System::IO::File::Open(System::IO::Path::Combine(RunExamples::InputDirectory, u"zip-in.zip"), System::IO::FileMode::Open);
// Clearing resources under the 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream });
try
{
    System::SharedPtr<System::IO::Stream> outZipStream =
        System::IO::File::Open(System::IO::Path::Combine(RunExamples::OutputDirectory, u"zip-pdf-out.zip"), System::IO::FileMode::Create);
    // Clearing resources under the 'using' statement
    System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
    try
    {
        // Create typesetting options for the default Object TeX format on the Object TeX engine extension.
        System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());
        // Specify a ZIP archive working directory for the input.
        options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));
        // Specify a ZIP archive working directory for the output.
        options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));
        // Specify console as output terminal.
        options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());

        // Create and specify saving options.
        options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
        // Run the typesetting job.
        System::MakeObject<Aspose::TeX::TeXJob>(u"hello-world", System::MakeObject<PdfDevice>(), options)->Run();

        // Finalize the output ZIP archive.
        (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());
}



Domande frequenti

1. Posso comporre documenti TeX utilizzando un file ZIP come input?

Aspose.TeX supporta la lettura di file sorgente TeX da archivi compressi come file ZIP. È possibile includere tutti i file necessari, compresi i file sorgente TeX, le immagini e le risorse aggiuntive, all’interno di un archivio ZIP e quindi specificare il file ZIP come input per il compilatore LaTeX. Questo consente un’organizzazione e una distribuzione convenienti dei progetti LaTeX, specialmente quando si tratta di documenti grandi o complessi con molteplici dipendenze.

2. Ci sono vantaggi nell’utilizzare file ZIP per la composizione di documenti TeX?

Sì, l’utilizzo di file ZIP per la composizione di documenti TeX offre diversi vantaggi. In primo luogo, i file ZIP forniscono un modo conveniente per confezionare e organizzare più file associati a un progetto LaTeX, compresi i file sorgente TeX, le bibliografie, le immagini e i file di stile, in un unico archivio compresso. Questo semplifica la distribuzione e la condivisione dei documenti LaTeX, specialmente quando si collabora con altri o si condividono progetti online.

3. Come comporre file TeX?

Per comporre file TeX utilizzando la soluzione API Aspose.TeX, è necessario creare opzioni di conversione per il formato Object TeX o Object LaTeX basato sull’estensione del motore Object TeX. Specificare quindi una directory di lavoro del sistema di file per l’output. Infine, creare un’istanza della classe TeXJob e eseguire il processo di composizione utilizzando il metodo TeXJob.Run().

TeX What is TeX File Format

TeX è un sistema di composizione tipografica e un linguaggio di programmazione che consente di creare documenti di alta qualità, in particolare con formule matematiche. I file .tex sono testo semplice elaborato da motori TeX (pdfTeX, XeTeX, LuaTeX) per produrre PDF o DVI.