המר TeX לקובץ PDF או XPS באופן תוכניתי באמצעות C++

קבצי TeX משמשים לקביעת הקלדה של מסמכים וספרים שונים המכילים טקסט, סמלים וביטויים אריתמטיים. בנוסף, קבצים אלה יכולים ליצור פלטים כמו PDF, XPS, ופורמטים שונים של תמונה. במאמר זה, תלמד כיצד להמיר קבצי TeX לפורמט XPS ו-PDF באמצעות C++.

C++ API להמרת TeX לפורמט PDF ו-XPS

Aspose.TeX for C++ היא ספריית C++ לעבודה עם קבצי TeX ללא צורך בהתקנה של תוכנה נוספת. ה-API מאפשר לך להגדיר קבצי TeX ולייצר פלט בפורמטים כמו XPS, PDF, PNG, JPEG, TIFF, BMP. אתה יכול להתקין את ה-API דרך NuGet או להוריד אותו ישירות מהקטע הורדות.

PM> Install-Package Aspose.TeX.Cpp

המרת TeX לפורמט XPS באמצעות C++

אתה יכול להמיר קבצי TeX לפורמט XPS בכמה שורות קוד בלבד. כדי להשיג זאת, אנא בצע את השלבים המפורטים להלן.

הקוד לדוגמה הבא מדגים כיצד להמיר קובץ TeX לפורמט XPS באמצעות C++.

// צור אפשרויות קביעת כתיבה עבור פורמט ObjectTeX המוגדר כברירת מחדל בסיומת מנוע ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

// ציין ספריית עבודה של מערכת קבצים לקלט.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));

// ציין ספריית עבודה של מערכת קבצים לפלט.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

// ציין קונסולה כמסוף פלט.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// בְּרִירַת מֶחדָל. אין צורך לפרט.
// ציין את זרם הזיכרון כמסוף פלט, אם אינך רוצה שפלט המסוף ייכתב למסוף.
//options.TerminalOut = new OutputMemoryTerminal();

// הפעל הגדרת כתיבה.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<XpsDevice>(), options);

// לפלט נוסף להסתכל כתוב.
options->get_TerminalOut()->get_Writer()->WriteLine();

המרת TeX לפורמט PDF באמצעות C++

להלן השלבים להמרת קבצי TeX לפורמט PDF.

הקוד לדוגמה הבא מראה כיצד להמיר קובץ TeX לפורמט PDF באמצעות C++.

// צור אפשרויות קביעת כתיבה עבור פורמט ObjectTeX המוגדר כברירת מחדל בסיומת מנוע ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

// ציין ספריית עבודה של מערכת קבצים לקלט.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));

// ציין ספריית עבודה של מערכת קבצים לפלט.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

// ציין קונסולה כמסוף פלט.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// בְּרִירַת מֶחדָל. אין צורך לפרט.
// ציין את זרם הזיכרון כמסוף פלט, אם אינך רוצה שפלט המסוף ייכתב למסוף.
//options.TerminalOut = new OutputMemoryTerminal();

// הגדר את PdfSaveOptions
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());

// הפעל הגדרת כתיבה.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

// לפלט נוסף להסתכל כתוב.
options->get_TerminalOut()->get_Writer()->WriteLine();

המרת ספריית TeX ZIP ל-PDF ZIP Directory באמצעות C++

על מנת להמיר מספר קובצי TeX לפורמט PDF במכה אחת, ניתן להוסיף את קבצי TeX לארכיון ZIP ולהמיר אותם לקובצי PDF דחוסים. להלן השלבים להשיג זאת.

הקוד לדוגמה הבא מראה כיצד להמיר ארכיון TeX ZIP לארכיון PDF ZIP באמצעות C++.

// פתח את קובץ ה-zip המקור בזרם
System::SharedPtr<System::IO::Stream> inZipStream = System::IO::File::Open(System::IO::Path::Combine(u"SourceDirectory", u"zip-in.zip"), System::IO::FileMode::Open);
// ניקוי משאבים תחת הצהרת 'משתמש'
System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream });
// ------------------------------------------

try {
    // פתח את קובץ ה-zip הפלט בזרם
    System::SharedPtr<System::IO::Stream> outZipStream = System::IO::File::Open(System::IO::Path::Combine(u"OutputDirectory", u"zip-pdf-out.zip"), System::IO::FileMode::Create);
    // ניקוי משאבים תחת הצהרת 'משתמש'
    System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
    // ------------------------------------------

    try
    {
        // צור אפשרויות קביעת כתיבה עבור פורמט ObjectTeX המוגדר כברירת מחדל בסיומת מנוע ObjectTeX.
        System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

        // ציין ספריית עבודה של ארכיון ZIP לקלט.
        options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));

        // ציין ספריית עבודה של ארכיון ZIP לפלט.
        options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));

        // ציין קונסולה כמסוף פלט.
        options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
        // בְּרִירַת מֶחדָל. אין צורך לפרט.

        // צור וציין אפשרויות שמירה.
        options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());

        // הפעל הגדרת כתיבה.
        Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

        // כדי שהפלט יראה עוקב כתוב. 
        options->get_TerminalOut()->get_Writer()->WriteLine();

        // סיים את ארכיון הפלט ZIP.
        (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());
}

קבל רישיון חינם

אתה יכול לנסות את ה-API ללא מגבלות הערכה על ידי בקשת [רישיון זמני בחינם].29

סיכום

במאמר זה, למדת כיצד להמיר קבצי TeX לפורמט XPS ו-PDF באמצעות C++. יתר על כן, למדת כיצד להמיר קבצי TeX בארכיון ZIP לקובצי PDF דחוסים. Aspose.TeX for C++ מספק תכונות נוספות רבות לעבודה עם קבצי TeX. אתה יכול לחקור את ה-API בפירוט על ידי ביקור בתיעוד הרשמי. בכל שאלה, אנא אל תהסס לפנות אלינו בפורום התמיכה החינמי שלנו.

ראה גם