ایجاد PDF از LaTeX در جاوا

LaTeX به طور گسترده برای ایجاد اسناد فنی و علمی استفاده می شود. فایل‌های LaTeX (TEX یا LTX) اسناد منبع هستند که با دستوراتی برای تعیین قالب سند، از جمله متن، نمادها، عبارات ریاضی و گرافیک پر شده‌اند. ما به راحتی می توانیم یک سند PDF را از منبع LaTeX به صورت برنامه ریزی شده تولید کنیم. PDF اجازه می دهد اسناد را در قالبی فقط خواندنی بدون به خطر انداختن سبک یا طرح آنها به اشتراک بگذارید. در این مقاله نحوه ایجاد یک سند PDF از فایل منبع LaTeX در جاوا را یاد خواهیم گرفت.

موضوعات زیر در این مقاله پوشش داده خواهد شد:

Java API برای ایجاد PDF از LaTeX

برای ایجاد اسناد PDF از فایل های منبع LaTeX، از Aspose.TeX for Java API استفاده خواهیم کرد. این اجازه می دهد تا فایل های TeX را به فرمت های مختلف فایل مانند PDF، XPS یا تصاویر حروفچینی کنید. لطفاً JAR API را دانلود کنید یا پیکربندی pom.xml زیر را در یک برنامه جاوا مبتنی بر Maven اضافه کنید.

مخزن:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

وابستگی:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-tex</artifactId>
    <version>21.11</version>
    <type>jar</type>
</dependency>

PDF را از فایل LaTeX TeX در جاوا ایجاد کنید

با دنبال کردن مراحل زیر می‌توانیم یک سند PDF از یک فایل LaTeX (TeX) ایجاد کنیم:

  1. ابتدا با استفاده از روش consoleAppOptions() یک نمونه از کلاس TeXOptions ایجاد کنید.
  2. پیکربندی TeX را به عنوان TeXConfig.objectLaTeX() تنظیم کنید.
  3. بعد، دایرکتوری های کاری ورودی و خروجی را تنظیم کنید.
  4. سپس، کنسول یا جریان حافظه را به عنوان پایانه خروجی مشخص کنید.
  5. پس از آن، گزینه هایی را برای رندر به فرمت PDF تنظیم کنید.
  6. در نهایت، متد run() را برای نمونه کلاس جدید ایجاد شده TexJob با خروجی PDF و شی کلاس PdfDevice به عنوان آرگومان فراخوانی کنید.

مثال کد زیر نحوه ایجاد یک PDF از یک فایل TeX با استفاده از جاوا را نشان می دهد.

// این مثال کد نحوه ایجاد یک PDF از فایل منبع TeX را نشان می دهد.
// دایرکتوری کار
String dataDir = "D:\\Files\\Tex\\";

// گزینه های حروفچینی ایجاد کنید
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// یک دایرکتوری کار سیستم فایل را برای ورودی مشخص کنید.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// یک دایرکتوری کار سیستم فایل را برای خروجی مشخص کنید.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// جریان حافظه را به عنوان ترمینال خروجی مشخص کنید.
options.setTerminalOut(new OutputMemoryTerminal());

// گزینه هایی را برای رندر به فرمت PDF تنظیم کنید.
options.setSaveOptions(new PdfSaveOptions());

// حروفچینی را اجرا کنید.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();
PDF را از فایل LaTeX TeX در جاوا ایجاد کنید

PDF را از فایل LaTeX TeX در جاوا ایجاد کنید.

PDF را از فایل LTX در جاوا ایجاد کنید

LaTeX از یک پسوند فایل LTX برای حروفچینی برچسب ها و ویژگی های نشانه گذاری استفاده می کند که ساختار و محتوای سند را تعریف می کند. همچنین می‌توانیم با دنبال کردن مراحل ذکر شده، یک PDF از فایل LaTeX (LTX) ایجاد کنیم. با این حال، ما فقط باید فایل منبع را با پسوند ltx در مرحله آخر وارد کنیم.

مثال کد زیر نحوه ایجاد یک PDF از یک فایل LTX با استفاده از جاوا را نشان می دهد.

// این مثال کد نحوه ایجاد یک PDF از فایل منبع LTX را نشان می دهد.
// دایرکتوری کار
String dataDir = "D:\\Files\\Tex\\";

// گزینه های حروفچینی ایجاد کنید
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// یک دایرکتوری کار سیستم فایل را برای ورودی مشخص کنید.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// یک دایرکتوری کار سیستم فایل را برای خروجی مشخص کنید.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// جریان حافظه را به عنوان ترمینال خروجی مشخص کنید.
options.setTerminalOut(new OutputMemoryTerminal());

// گزینه هایی را برای رندر به فرمت PDF تنظیم کنید.
options.setSaveOptions(new PdfSaveOptions());

// حروفچینی را اجرا کنید.
new TeXJob(dataDir + "sample.ltx", new PdfDevice(), options).run();

تبدیل TeX به XPS با استفاده از جاوا

همچنین می‌توانیم فایل LaTeX (TeX) را با دنبال کردن مراحل ذکر شده به XPS تبدیل کنیم. با این حال، ما فقط باید XpsSaveOptions را به جای PdfSaveOptions در مرحله 5 تنظیم کنیم.

مثال کد زیر نحوه تبدیل TeX به XPS را با استفاده از جاوا نشان می دهد.

// این مثال کد نحوه تبدیل یک Tex به XPS را نشان می دهد.
// دایرکتوری کار
String dataDir = "D:\\Files\\Tex\\";

// گزینه های حروفچینی ایجاد کنید
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// یک دایرکتوری کار سیستم فایل را برای ورودی مشخص کنید.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// یک دایرکتوری کار سیستم فایل را برای خروجی مشخص کنید.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// جریان حافظه را به عنوان ترمینال خروجی مشخص کنید.
options.setTerminalOut(new OutputMemoryTerminal());

// گزینه هایی را برای رندر در قالب XPS تنظیم کنید.
options.setSaveOptions(new XpsSaveOptions());

// حروفچینی را اجرا کنید.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();

تبدیل TeX ZIP Directory به PDF ZIP Directory با استفاده از جاوا

ما می توانیم چندین فایل TeX فشرده شده در یک آرشیو ZIP را به طور همزمان به PDF با دنبال کردن مراحل زیر تبدیل کنیم:

  1. ابتدا، جریان‌ها را در بایگانی ZIP به عنوان دایرکتوری کاری ورودی و خروجی باز کنید.
  2. سپس با استفاده از روش consoleAppOptions() یک نمونه از کلاس TeXOptions ایجاد کنید.
  3. سپس، پیکربندی TeX را به عنوان TeXConfig.objectLaTeX() تنظیم کنید.
  4. بعد، دایرکتوری های ZIP ورودی و خروجی را تنظیم کنید.
  5. سپس، کنسول یا جریان حافظه را به عنوان پایانه خروجی مشخص کنید.
  6. پس از آن، گزینه هایی را برای رندر به فرمت PDF تنظیم کنید.
  7. در نهایت، متد run() را برای نمونه کلاس جدید ایجاد شده TexJob با خروجی PDF و شی کلاس PdfDevice به عنوان آرگومان فراخوانی کنید.

مثال کد زیر نحوه تبدیل یک آرشیو ZIP TeX به یک بایگانی ZIP PDF با استفاده از جاوا را نشان می دهد.

// این مثال کد نحوه تبدیل دایرکتوری ZIP TeX به دایرکتوری ZIP PDF را نشان می دهد.
// دایرکتوری کار
String dataDir = "D:\\Files\\Tex\\";

// جریان را در بایگانی ZIP باز کنید که به عنوان دایرکتوری کاری ورودی عمل می کند.
final InputStream inZipStream = new FileInputStream(dataDir + "files.zip");

// جریان را در بایگانی ZIP باز کنید که به عنوان دایرکتوری کاری خروجی عمل می کند.
final OutputStream outZipStream = new FileOutputStream(dataDir + "files-out.zip");

try {
    // گزینه های تبدیل را برای فرمت ObjectTeX پیش فرض در پسوند موتور ObjectTeX ایجاد کنید.
    TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

    // یک دایرکتوری کار بایگانی ZIP برای ورودی مشخص کنید.
    options.setInputWorkingDirectory(new InputZipDirectory(inZipStream, "files"));

    // یک دایرکتوری کاری بایگانی ZIP برای خروجی مشخص کنید.
    options.setOutputWorkingDirectory(new OutputZipDirectory(outZipStream));

    // کنسول را به عنوان ترمینال خروجی مشخص کنید.
    options.setTerminalOut(new OutputConsoleTerminal()); // Default. Not necessary to specify.

    // گزینه های ذخیره را تعریف کنید.
    options.setSaveOptions(new PdfSaveOptions());

    // کار را اجرا کنید.
    TeXJob job = new TeXJob("sample", new PdfDevice(), options);
    job.run();

    // برای اینکه خروجی بعدی به نظر برسد بنویسید. 
    options.getTerminalOut().getWriter().newLine();

    // آرشیو ZIP خروجی را نهایی کنید.
    ((OutputZipDirectory)options.getOutputWorkingDirectory()).finish();
} finally {
  outZipStream.close();
}
بایگانی TeX ZIP را به آرشیو PDF ZIP تبدیل کنید

بایگانی TeX ZIP را به آرشیو PDF ZIP تبدیل کنید.

مجوز رایگان دریافت کنید

می‌توانید [یک مجوز موقت رایگان] دریافت کنید21 تا کتابخانه را بدون محدودیت ارزیابی امتحان کنید.

نتیجه

در این مقاله یاد گرفتیم که چگونه:

  • تولید یک خروجی PDF از فایل منبع LaTeX در جاوا.
  • یک سند خروجی XPS از فایل TeX به صورت برنامه ریزی شده ایجاد کنید.
  • با استفاده از جاوا، بایگانی TeX ZIP را به آرشیو PDF ZIP تبدیل کنید.

علاوه بر این، می‌توانید با استفاده از مستندات درباره Aspose.TeX for Java API اطلاعات بیشتری کسب کنید. در صورت وجود هرگونه ابهام، لطفاً با ما در تالار گفتمان تماس بگیرید.

همچنین ببینید