فرمت بخش LaTeX به PNG یک نیاز مشترک برای سند وب، پایگاه دانش و برنامه های ریاضی سنگین است. Aspose.TeX for .NET یک API ساده برای تبدیل .tex منابع به تصاویر راستر با کنترل بر دیپلمات های خروج و resolutions.This مقاله نشان می دهد یک تبدیلگر واحد فایل حداقل و یک خط خط قوی شما می توانید به هر برنامه .NET.

پیش فرض

  • .NET 6 یا بعد
  • بسته بندی نوکیا: Aspose.TeX
  • منابع LaTeX که تحت موتور Object LaTeX را با استفاده از Aspose.TeX جمع آوری می کنند

Aspose.TeX exposes TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX), ImageDevicePngSaveOptions تولید PNG تولید می شود.


حداقل تبدیل: یک فایل LaTeX به PNG

این مثال تبدیل hello-world.ltx (یا .tex) به PNG در یک فولد خروج. دستگاه فایل های تصویر را به طور مستقیم می نویسد.

// File: Program.cs
// NuGet: Aspose.TeX

using System;
using System.IO;
using Aspose.TeX;

class Program
{
    static void Main()
    {
        var inputFile  = Path.GetFullPath("hello-world.tex"); // or .ltx
        var outputDir  = Path.GetFullPath("out-png");
        Directory.CreateDirectory(outputDir);

        // 1) Create conversion options for Object LaTeX
        TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);

        // 2) Choose where to write output files
        options.OutputWorkingDirectory = new OutputFileSystemDirectory(outputDir);

        // 3) Save as PNG (you can set resolution if required)
        var png = new PngSaveOptions
        {
            // Resolution = 300 // uncomment to render at 300 DPI
        };
        options.SaveOptions = png;

        // 4) Run the job. ImageDevice writes PNG files into the output directory.
        var device = new ImageDevice();
        new TeXJob(inputFile, device, options).Run();

        Console.WriteLine("PNG written to: " + outputDir);
    }
}

این امر به دنبال نمونه های ثابت شده است: ایجاد TeXOptions,- Set OutputWorkingDirectory,- Set PngSaveOptions,سپس به A Run TeXJob با یک ImageDevice.

تبدیل بلیت: همه .tex فایل ها در یک فاکتور

نسخه باریک یک دیپلم واردات را اسکن می کند و هر یک از آن ها را تبدیل می کند. .tex همچنین نشان می دهد که چگونه کنترل می شود که از کجا بستگی ها و گرافیک شامل خوانده می شوند.

// File: BatchLatexToPng.cs
// NuGet: Aspose.TeX

using System;
using System.IO;
using Aspose.TeX;
using Aspose.TeX.IO;
using Aspose.TeX.Presentation.Image;

public static class BatchLatexToPng
{
    public static int Run(string inputDir, string outputDir, int? dpi = null)
    {
        if (!Directory.Exists(inputDir))
        {
            Console.Error.WriteLine("Input directory not found: " + inputDir);
            return 1;
        }
        Directory.CreateDirectory(outputDir);

        // Configure conversion options once and reuse
        var options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);

        // Where to read auxiliary inputs (e.g., included images)
        options.InputWorkingDirectory = new InputFileSystemDirectory(inputDir);

        // Where to read extra required packages (if you supply them)
        // options.RequiredInputDirectory = new InputFileSystemDirectory(Path.Combine(inputDir, "texmf"));

        // Where to write PNG, log, aux, etc.
        options.OutputWorkingDirectory = new OutputFileSystemDirectory(outputDir);

        // PNG save options (set DPI if needed)
        var png = new PngSaveOptions();
        if (dpi.HasValue) png.Resolution = dpi.Value;
        options.SaveOptions = png;

        int ok = 0, err = 0;
        var device = new ImageDevice(); // will write images to OutputWorkingDirectory

        foreach (var texPath in Directory.GetFiles(inputDir, "*.tex", SearchOption.AllDirectories))
        {
            try
            {
                // Optional: set a job name so output files have predictable names
                options.JobName = Path.GetFileNameWithoutExtension(texPath);

                new TeXJob(texPath, device, options).Run();
                Console.WriteLine("OK  " + Path.GetRelativePath(inputDir, texPath));
                ok++;
            }
            catch (Exception ex)
            {
                Console.WriteLine("ERR " + Path.GetRelativePath(inputDir, texPath) + " | " + ex.Message);
                err++;
            }
        }

        Console.WriteLine($"Done. Success: {ok}, Failed: {err}");
        return err == 0 ? 0 : 2;
    }
}

نقاط کلیدی برای کارهای بریتانیا:

  • استفاده InputWorkingDirectory برای دارایی هایی مانند \includegraphics{img.png}.
  • استفاده RequiredInputDirectory اگر باید بسته های اضافی LaTeX را خارج از مجموعه داخلی ارائه دهید.
  • سیست JobName برای تاثیرگذاری بر نام فایل های خارج از یک سند.

ضبط تصاویر در حافظه به جای نوشتن فایل ها

اگر دوست دارید خودتان بیتی های PNG را پخش کنید، اجازه دهید دستگاه شما با خاموش کردن نوشتن فایل های مستقیم آنها را بفرستد.

using System;
using System.IO;
using Aspose.TeX;
using Aspose.TeX.Presentation.Image;

static void ConvertToStreams(string inputFile, string outputDir)
{
    Directory.CreateDirectory(outputDir);

    var options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
    var png     = new PngSaveOptions { DeviceWritesImages = false };
    options.SaveOptions = png;

    var device = new ImageDevice();
    new TeXJob(inputFile, device, options).Run();

    for (int i = 0; i < device.Result.Length; i++)
    {
        var pageBytes = device.Result[i];
        var outPath   = Path.Combine(outputDir, $"page-{i + 1}.png");
        File.WriteAllBytes(outPath, pageBytes);
    }
}

این نشان دهنده “نماطیع جایگزین” برای نوشتن فایل های PNG اصلی است.


حل مشکلات و تپ

  • قراردادهای:• افزایش PngSaveOptions.Resolution برای فرمول های روشن تر در تصاویر ریتنا یا دارایی های چاپ.
  • بستگی: بسته های شخصی و واردات را در دیپلمات های مشخص شده توسط RequiredInputDirectory و InputWorkingDirectory.
  • نام: سیست options.JobName برای نام فایل های پیش بینی شده در فرآیند بارداری.
  • لوگو:• موتور نوشتن یک ترافیک .log به دیپلم خروجی، که برای دابغ کردن بسته های ناپدید شده و خطاهای LaTeX مفید است.

وقتی می توانیم فرمت های دیگر را انتخاب کنیم

PNG برای انتشار وب و نصب UI ایده آل است.اگر برای زوم بی نهایت یا متن کوچک در اندازه نیاز دارید، با استفاده از SVG به SVG تبدیل کنید. SvgSaveOptions و یک SvgDevice,در صورت مشاهده PDF، یا PDF برای دستاورد های صفحه ای. جریان تبدیل به یکسان باقی می ماند.

با استفاده از این مدل ها، شما می توانید LaTeX به PNG را در مقیاس خودکار کنید در .NET، در حالی که کنترل کامل بر resolutions، directories و پردازش فایل را حفظ می کنید.

More in this category