จัดพิมพ์ TeX ด้วย I/O ของ ZIP

แปลง TeX เป็น PDF โดยใช้ไฟล์ ZIP เป็นอินพุตและเอาต์พุต API สำหรับ C++

 

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

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

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

Package Manager Console Command

PM> Install-Package Aspose.TeX.Cpp

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

  1. เปิดสตรีมที่มีไฟล์ ZIP ซึ่งจะทำหน้าที่เป็นไดเรกทอรีทำงานอินพุต คุณสามารถเลือกกำหนดไดเรกทอรีภายใต้ไฟล์ได้ มิฉะนั้น จะมีการค้นหาไฟล์ทั่วทั้งไฟล์ ZIP
  2. สร้างสตรีมไฟล์สำหรับไฟล์ ZIP ใหม่เพื่อทำหน้าที่เป็นไดเรกทอรีทำงานเอาต์พุต
  3. สร้างตัวเลือกการจัดพิมพ์สำหรับรูปแบบ Object TeX บนส่วนขยายเครื่องยนต์ Object TeX
  4. กำหนดไดเรกทอรีทำงานของไฟล์ ZIP สำหรับอินพุตและเอาต์พุตโดยใช้คลาส InputZipDirectory และ OutputZipDirectory
  5. กำหนดคอนโซลเป็นเทอร์มินัลเอาต์พุต
  6. ใช้คลาส PdfSaveOptions กำหนดตัวเลือกการบันทึกสำหรับตัวเลือกการจัดพิมพ์
  7. สร้างอินสแตนซ์ของคลาส TeXJob โดยส่งชื่อไฟล์อินพุตหลัก ออบเจ็กต์ PdfDevice ที่สร้างขึ้นใหม่ และตัวเลือกการจัดพิมพ์เป็นอาร์กิวเมนต์ รันการแปลงโดยเรียกเมธอด Run()
  8. สรุปไฟล์ ZIP เอาต์พุต

ตัวอย่างโค้ด C++: การแปลง TeX เป็น PDF ด้วยอินพุตและเอาต์พุตของ ZIP

using Aspose::TeX::IO;
using Aspose::TeX::Presentation::Pdf;
// 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 the '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 the 'using' statement
    System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
    try
    {
        // Create typesetting options for the default Object TeX format on the Object TeX 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 console as output terminal.
        options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());

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

        // 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 โดยใช้ไฟล์ ZIP เป็นข้อมูลนำเข้าได้หรือไม่?

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

2. มีข้อดีใดในการใช้ไฟล์ ZIP ในการจัดระเบียบเอกสาร TeX หรือไม่?

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

3. วิธีการจัดระเบียบไฟล์ TeX?

ในการจัดระเบียบไฟล์ TeX โดยใช้ Aspose.TeX API Solution คุณจำเป็นต้องสร้างตัวเลือกการแปลงสำหรับรูปแบบ Object TeX หรือ Object LaTeX ขึ้นอยู่กับส่วนขยายของเครื่องมือ Object TeX จากนั้นระบุไดเร็กทอรีการทำงานของระบบไฟล์สำหรับผลลัพธ์ ในท้ายที่สุด สร้างตัวอย่างของคลาส TeXJob และเรียกใช้กระบวนการจัดระเบียบโดยใช้วิธี TeXJob.Run()

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

TeX เป็นระบบจัดหน้าและภาษาการเขียนโปรแกรมที่ช่วยสร้างเอกสารคุณภาพสูง โดยเฉพาะสูตรคณิตศาสตร์ ไฟล์ .tex เป็นข้อความธรรมดาที่ประมวลผลโดยเครื่องยนต์ TeX (เช่น pdfTeX, XeTeX, LuaTeX) เพื่อผลิต PDF หรือ DVI.