LaTeX a pdf | Aspose.TeX per .NET

Come convertire il LaTeX in PDF

Diamo uno sguardo dettagliato al codice in C# fornendo il modo più semplice per convertire il LaTeX in formato PDF.

1// Create conversion options for Object LaTeX format upon Object TeX engine extension.
2TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
3// Specify a file system working directory for the output.
4options.OutputWorkingDirectory = new OutputFileSystemDirectory(RunExamples.OutputDirectory);
5// Initialize the options for saving in PDF format.
6options.SaveOptions = new PdfSaveOptions();
7// Run LaTeX to PDF conversion.
8new TeXJob(Path.Combine(RunExamples.InputDirectory, "hello-world.ltx"), new PdfDevice(), options).Run();

Quindi, la prima cosa che dobbiamo fare (beh, a volte non il primo) è creare un’istanza della classe texoptions. L’unico metodo statico che fa questo è ConsoleAppoptions(), quindi non essere perplessi dal significato del suo nome. Il metodo prende una istanza della classe TexConfig, che è esattamente adatta per la conversione di un file latex. Questa configurazione indica al motore Object Tex di caricare il formato Object Latex e di essere pronto ad accettare il file Latex. Il formato di LaTeX oggetto è in realtà solo il formato LaTeX, tranne per il fatto che utilizza le primitive specifiche Object Tex per impostare le metriche di pagina.

La prima delle opzioni richieste è OutputWorkingDirectory che definisce lo spazio o l’area, in cui verrà scritto l’output di Tex. Qui sono i dettagli sul concetto di directory di output in Aspose.TeX per .net. In questo esempio, utilizziamo la classe OutputFilesystemDirectory, che ci consente di scrivere l’output alla directory o alla cartella specificata.

La seconda opzione è un’istanza di classe SaveOptions che controllerà la trasformazione del modello a oggetto al formato target. Dal momento che stiamo convertendo il LaTeX in PDF, è l’istanza di classe PDFSaveOptions.

Quindi dobbiamo creare un’istanza della classe Texjob. Volendo convertire un file LaTeX archiviato nel file system, utilizziamo questa versione del costruttore. Dobbiamo specificare l’intero percorso del file. Altrimenti, il motore lo cercherà nella directory corrente (che è CurrentDirectory) e molto probabilmente non lo troverà. Tuttavia, possiamo omettere l’estensione se il nostro file ha quello .tex. Il motore lo aggiungerà automaticamente. Il secondo argomento del costruttore è un’istanza di classe dispositivo. Dal momento che stiamo convertendo il LaTeX in PDF, è un’istanza di classe PDFDEVICE. Come ultimo argomento, passiamo le opzioni di conversione recentemente preparate.

Tutto ciò che resta da fare ora è correre il lavoro.

Indipendentemente dal fatto che la corsa abbia avuto successo o meno, il primo risultato che vedremo sarà l’output del terminale. In caso di successo, assomiglia a questo:

 1This is ObjectTeX, Version 3.1415926-1.0 (Aspose.TeX 21.8)
 2entering extended mode
 3
 4(<input_directory>\hello-world.ltx
 5LaTeX2e <2011/06/27>
 6(article.cls
 7Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
 8(size10.clo))
 9No file hello-world.aux.
10[1]
11(<output_directory>\hello-world.aux) )
12Output written on hello-world.pdf (1 page).
13Transcript written on hello-world.log.

Troveremo altri “frutti” del lavoro del motore nella cartella che abbiamo specificato come directory di output. Quello sarà il file di trascrizione e, eccolo qui!, il principale file PDF di output.

Un modo alternativo per scrivere il file PDF di output principale

C’è un altro costruttore della classe PDFDEVICE, che ci consente di ottenere il file PDF risultante in modo alternativo.

1// Create the stream to write the PDF file to.
2using (Stream pdfStream = File.Open(Path.Combine(RunExamples.OutputDirectory, "any-name.pdf"), FileMode.Create))
3{
4    // Create conversion options for Object LaTeX format upon Object TeX engine extension.
5    ...
6    // Run LaTeX to PDF conversion.
7    new TeXJob(Path.Combine(RunExamples.InputDirectory, "hello-world.ltx"), new PdfDevice(pdfStream), options).Run();
8}

Il file Any-name.pdf nella directory specificata sarà il nostro principale file PDF di output. Allo stesso tempo, a differenza di output di immagini, non troveremo alcun file PDF nella directory di output definita dalle opzioni di conversione. Eccezione: Any-name.pdf si trova (dal suo percorso) nella stessa directory del file system assegnato all’opzione outputworkingdirectory utilizzando outputfilesystemdirectory.

Sulle opzioni di input

Nel caso in cui il nostro file di input principale richieda dipendenze, ad esempio pacchetti, che non sono inclusi nel sistema di LaTeX di base e nei pacchetti supportati, dobbiamo impostare l’opzione richiesta inputdirectory nel modo simile che impostiamo l’opzione outputworkingdirectory e mettere le dipendenze in quella directory. Le dipendenze possono essere organizzate arbitrariamente nelle sottodirectory. Nel caso in cui abbiamo i nostri file da includere lungo il processo di composizione, ad esempio file di grafica esterna, dobbiamo anche impostare InputWorkingDirectory utilizzando il percorso per la posizione in cui tali file vengono raccolti. Potremmo anche posizionare il file di input principale da qualche parte all’interno della directory di input e specificare il percorso relativo nel metodo run() (o specificare alcun percorso se il file di input principale è nella radice). Qui sono i dettagli sul concetto di directory di input in Aspose.TeX per .net e hanno fornito implementazioni.

Altre opzioni di lavoro di Tex sono discusse qui.

È inoltre possibile controllare la conversione gratuita Latex-to-PDF app Web basata su Aspose.TeX per API .NET.

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.