Comporre TeX con ZIP I/O

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

 

Il linguaggio TeX è uno strumento di composizione per creare documenti professionali senza preoccuparsi della formattazione. Aspose.TeX ti offre una soluzione API per C++ che è una libreria flessibile e facile da usare per impaginare file TeX e LaTeX.

TeX è un sistema potente e avanzato, ma il suo formato nativo non è ampiamente utilizzato al di fuori dei circoli 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 possibilità di leggere 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ù ampio e fornisce un formato più accessibile per chi non dispone di software specializzato. Inoltre, PDF offre numerosi vantaggi rispetto a TeX, come una migliore resa dei caratteri, supporto per l’interattività e una gestione più semplice delle dimensioni e del layout della pagina.

L’API consente la separazione delle directory di input e output, offrendo l’interfaccia IOutputWorkingDirectory per la personalizzazione dell’output da parte dell’utente. Ha le sue implementazioni. Questa interfaccia estende IInputWorkingDirectory poiché il motore potrebbe richiedere la scrittura su un file prima di leggerlo. Il metodo GetOutputFile() dell’interfaccia restituisce il flusso per la scrittura, anziché il flusso di lettura fornito da GetFile().

Package Manager Console Command

PM> Install-Package Aspose.TeX.Cpp

Nel codice seguente inseriremo i file di input in un archivio ZIP e lo considereremo una directory di input e creeremo un file (o flusso) e lasceremo che il motore TeX lo utilizzi come archivio ZIP per memorizzare i file di output. Segui la linea guida:

  1. Apri uno stream su un archivio ZIP che fungerà da directory di lavoro di input.
  2. Crea opzioni di composizione per il formato ObjectTeX predefinito sull’estensione del motore ObjectTeX.
  3. Specificare una directory di lavoro dell’archivio ZIP per l’input e l’output utilizzando InputZipDirectory e OutputZipDirectory Classi.
  4. Specificare la console come terminale di output.
  5. Utilizzando la classe PdfSaveOptions creare e specificare le opzioni di salvataggio.
  6. Esegui la conversione.
  7. Perfeziona l’output.
  8. Finalizza l’archivio ZIP di output.

Codice C++ per convertire 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 Cos'è il formato file TeX

TeX non è in realtà un formato. È allo stesso tempo un linguaggio di programmazione e anche un motore di interprete che comprende questo linguaggio. Un file TeX è un documento creato in LaTeX. Questo documento può includere grafici, tabelle, simboli, elenchi, formule ed equazioni.