เขียนผลลัพธ์ไปยัง ZIP

บันทึกผลการแปลงไฟล์ TeX เป็น ZIP ผ่าน C++

 

TeX เป็นภาษามาร์กอัปข้อมูลและแกนหลักของระบบการเรียงพิมพ์ของคอมพิวเตอร์หรือที่เรียกว่าระบบชุดสิ่งพิมพ์ แม้ว่ามักถูกเรียกว่ารูปแบบไฟล์ แต่จริงๆ แล้วเป็นภาษาโปรแกรมและเครื่องมือล่ามที่ใช้สร้างเอกสารทางคณิตศาสตร์ เทคนิค และเอกสารที่ซับซ้อนอื่นๆ อย่างไรก็ตาม เมื่อสร้างไฟล์แล้ว อาจจำเป็นต้องแปลงเป็นรูปแบบที่นิยมมากขึ้นเพื่อให้สามารถใช้ผลลัพธ์บนอุปกรณ์และแพลตฟอร์มใดก็ได้

Aspose.TeX API Solution นำเสนอคุณสมบัติสำหรับการแปลงไฟล์ TeX และบันทึกผลลัพธ์เป็นไฟล์ ZIP ข้อมูลโค้ดที่ให้ไว้ที่นี่แสดงวิธีแปลงไฟล์ TeX เป็น PDF และบันทึกผลลัพธ์เป็นไฟล์ zip ตัวแปลง API สามารถแปลงไฟล์ TeX ในภาษา C++ และสามารถใช้เพื่อสร้างแอปพลิเคชันข้ามแพลตฟอร์มหรือรวมเข้ากับโปรเจ็กต์ C++ ของคุณ

ในการเรียกใช้ตัวอย่าง คุณจะต้องใช้ Aspose.TeX สำหรับ C++ API ซึ่งเป็นเครื่องมือจัดการและแปลงเอกสารที่มีคุณลักษณะหลากหลายและใช้งานง่ายสำหรับแพลตฟอร์ม C++ คุณสามารถติดตั้ง Aspose.TeX API ได้โดยค้นหาในตัวจัดการแพ็คเกจ NuGet หรือใช้คำสั่ง Install-Package Aspose.TeX ใน Package Manager Console

Package Manager Console Command


    PM> Install-Package Aspose.TeX

รหัสที่นี่กำลังแปลงไฟล์ TeX และบันทึกเป็น PDF ในไฟล์ ZIP ทำตามขั้นตอนต่อไปเพื่อประมวลผลการแปลงดังกล่าว:

  1. สร้างอินสแตนซ์ของคลาส TeXOptions ใช้เพื่อระบุไดเร็กทอรีการทำงานของไฟล์ ZIP สำหรับเอาต์พุตโดยใช้คุณสมบัติ OutputWorkingDirectory
  2. ระบุคอนโซลเป็นเทอร์มินัลเอาต์พุตโดยใช้คลาส
  3. กำหนดตัวเลือกสำหรับการบันทึกเอาต์พุตโดยใช้คลาส
  4. เรียกใช้การแปลง TeX เป็น PDF โดยใช้เมธอด TeXJob() สำหรับ PdfDevice
  5. ปรับแต่งเอาต์พุต
  6. จบไฟล์เก็บถาวร ZIP เอาต์พุตโดยใช้คลาส รหัสใช้บล็อก try-catch เพื่อจัดการกับข้อยกเว้นใดๆ ที่อาจเกิดขึ้นระหว่างกระบวนการ

รหัส C++ สำหรับการใช้ไดเร็กทอรี ZIP สำหรับเอาต์พุต

    using Aspose::TeX::IO;
    using Aspose::TeX::Presentation::Pdf;
    using System::IO;
    // Open a stream on a ZIP archive that will serve as the input working directory.
    {
        System::SharedPtr<System::IO::Stream> inZipStream = System::IO::File::Open(System::IO::Path::Combine(RunExamples::InputDirectory, u"zip-in.zip"), System::IO::FileMode::Open);
        // Clearing resources under 'using' statement
        System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream});
        // ------------------------------------------

        try{
            System::SharedPtr<System::IO::Stream> outZipStream = System::IO::File::Open(System::IO::Path::Combine(RunExamples::OutputDirectory, u"zip-pdf-out.zip"), System::IO::FileMode::Create);
            // Clearing resources under 'using' statement
            System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream});
            // ------------------------------------------

            try
            {
                // Create typesetting options for default ObjectTeX format on ObjectTeX engine extension.
                System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());
                // Specify a ZIP archive working directory for the input.
                options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));
                // Specify a ZIP archive working directory for the output.
                options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));
                // Specify the console as an output terminal.
                options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
                // Default. Not necessary to specify.

                // Create and specify saving options.
                options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
                // Run typesetting.
                Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

                // For the consequent output to look right. 
                options->get_TerminalOut()->get_Writer()->WriteLine();

                // Finalize the output ZIP archive.
                (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());
        }
    }



คำถามที่พบบ่อย

1. จะแสดงเอาต์พุต TeX ได้อย่างไร

หากต้องการเปิดและดูเนื้อหาของไฟล์ TeX ออนไลน์ ให้ใช้ข้ามแพลตฟอร์ม TeX Viewer นอกจากนี้ยังจะช่วยให้คุณสามารถบันทึกไฟล์เป็นรูปภาพได้

2. ฉันสามารถเขียนเอาต์พุต TeX ไปยังไฟล์ ZIP ได้หรือไม่

ใช่ โซลูชัน API นี้รองรับคุณสมบัติดังกล่าว คุณจะต้องใช้ OutputZipDirectoryClass ซึ่งใช้วิธีการรับสตรีมไฟล์เพื่อเขียนเมื่อไดเร็กทอรีการทำงานเป็นไฟล์ ZIP

3. จะเขียนเอาต์พุต TeX ไปยังไฟล์ ZIP ได้อย่างไร

สร้างอินสแตนซ์ของคลาส TeXOptions จากนั้นระบุไดเร็กทอรีการทำงานของไฟล์เก็บถาวร ZIP สำหรับเอาต์พุตและคอนโซลเป็นเทอร์มินัลเอาต์พุต ระบุตัวเลือกการบันทึกและดำเนินการแปลง สุดท้าย ให้เขียนเอาต์พุตลงใน ZIP โดยใช้คลาส OutputZipDirectory

TeX TeX รูปแบบไฟล์คืออะไร

TeX ไม่ใช่รูปแบบจริงๆ ในขณะเดียวกันก็เป็นภาษาการเขียนโปรแกรมและเครื่องมือล่ามที่เข้าใจภาษานี้ ไฟล์ TeX เป็นเอกสารที่สร้างขึ้นใน LaTeX เอกสารนี้สามารถรวมถึงกราฟิก ตาราง สัญลักษณ์ รายการ สูตร และสมการ