LaTeX all'immagine | .NET
Aspose.TeX per .NET ci consente di convertire i file in LaTeX in un numero di formati di immagini raster.
Come convertire il LaTeX in PNG
Diamo uno sguardo dettagliato al codice in C# fornendo il modo più semplice per convertire il LaTeX in formato PNG.
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 PNG format.
6options.SaveOptions = new PngSaveOptions();
7// Run LaTeX to PNG conversion.
8new TeXJob(Path.Combine(RunExamples.InputDirectory, "hello-world.ltx"), new ImageDevice(), 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 l’istanza ObjectLatex 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 PNG, è l’istanza di classe pngsaveoptions, che ci consente di specificare la risoluzione delle immagini di output.
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, l’estensione .tex può essere omessa. Il motore lo aggiungerà automaticamente. Il secondo argomento del costruttore è un’istanza di classe dispositivo. Dal momento che stiamo convertendo il LaTeX in PNG, è un’istanza di classe imagevice, e questo è comune a tutti i formati di immagine supportati. 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. Se la corsa ha avuto successo, sembrerà qualcosa del genere:
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.png (1 page).
13Transcript written on hello-world.log.
Troveremo altri “frutti” del lavoro del motore nella cartella che abbiamo specificato come directory di output. Quelli saranno il file di trascrizione e, eccolo!, i principali file di immagine PNG di output.
Un modo alternativo per scrivere i file PNG di output principale
Esiste un altro modo per ottenere i dati dell’immagine come un matrice di array di byte, ogni array nella seconda dimensione rappresenta i dati di immagine per una pagina separata.
1// Create conversion options instance.
2...
3// Initialize the options for saving in PNG format.
4PngSaveOptions pngSaveOptions = new PngSaveOptions();
5pngSaveOptions.DeviceWritesImages = false;
6options.SaveOptions = pngSaveOptions;
7// Create the image device.
8ImageDevice device = new ImageDevice();
9// Run LaTeX to PNG conversion.
10new TeXJob(Path.Combine(RunExamples.InputDirectory, "hello-world.ltx"), device, options).Run();
11
12// Save pages file by file.
13for (int i = 0; i < device.Result.Length; i++)
14{
15 using (Stream fs = File.Open(Path.Combine(RunExamples.OutputDirectory, $"page-{i + 1}.png"), FileMode.Create))
16 fs.Write(device.Result[i], 0, device.Result[i].Length);
17}
I file “Page-n.png” saranno scritti su qualsiasi percorso che specificiamo. A differenza di Output PDF, duplicheranno i file PNG di output scritti nella directory di output.
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
RecomeinputDirectory 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. Possiamo 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 nessun 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 da lattoce a PNG gratuita app Web basata sulla base di Aspose.TeX per API .NET.
Di seguito, discutiamo della conversione in LaTeX ad altri formati di immagine raster supportati senza affondare in profondità i dettagli in quanto in realtà non ci sono dettagli. L’unica differenza è nel tipo di proprietà SaveOptions nelle opzioni di conversione.
Come convertire il LaTeX in jpg
1// Create conversion options instance.
2...
3// Initialize the options for saving in JPEG format.
4options.SaveOptions = new JpegSaveOptions();
È inoltre possibile controllare la conversione da lattoce a jpg gratuita app Web basata su Aspose.TeX per .net API.
Come convertire il LaTeX in tiff
1// Create conversion options instance.
2...
3// Initialize the options for saving in TIFF format.
4options.SaveOptions = new TiffSaveOptions();
È inoltre possibile controllare la conversione da LaTeX-tiff gratuita app Web basata su Aspose.TeX per API .NET.
Come convertire il LaTeX in BMP
1// Create conversion options instance.
2...
3// Initialize the options for saving in BMP format.
4options.SaveOptions = new BmpSaveOptions();
Puoi anche controllare la conversione gratuita in lattici a BMP app Web basata su Aspose.TeX per API .NET.
Come convertire il LaTeX in SVG
E ancora un altro formato target supportato è svg. Scalable Vector Graphics (SVG) è un formato di immagine vettoriale basato su XML per definire la grafica bidimensionale, con supporto per l’interattività e l’animazione.
Le immagini SVG sono definite in un formato grafico vettoriale e memorizzate in file di testo XML. Le immagini SVG possono quindi essere ridimensionate senza perdita di qualità e i file svg possono essere cercati, indicizzati, script e compressi. I file di testo XML possono essere creati e modificati con editor di testo o redattori di grafica vettoriale e sono resi dai browser Web più utilizzati.
Esiste la libreria Aspose.svg che fornisce varie funzionalità relative a svg. Questi includono la creazione, il caricamento, la modifica e la conversione di documenti SVG.
La conversione da LaTeX a SVG è anche semplice come la conversione in formati di immagini raster, tranne per il fatto che i SaveOptions devono essere impostati su un’istanza di classe SVGSaveOptions e il dispositivo deve essere modificato in un’istanza della classe SVGDevice.
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 SVG format.
6options.SaveOptions = new SvgSaveOptions();
7// Run LaTeX to SVG conversion.
8new TeXJob(Path.Combine(RunExamples.InputDirectory, "hello-world.ltx"), new PdfDevice(), options).Run();
È inoltre possibile controllare la conversione da lattoce a SVG gratuita app Web basata su Aspose.TeX per API .NET.