แปลงไฟล์ 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 ได้ด้วยโค้ดเพียงไม่กี่บรรทัด เพื่อให้บรรลุเป้าหมายนี้ โปรดปฏิบัติตามขั้นตอนด้านล่าง

  • สร้างอินสแตนซ์ของคลาส TeXOptions โดยใช้ TeXConfig::ObjectTeX(System::SharedPtrAspose::TeX::ResourceProviders::FormatProvider formatProvider = nullptr) ฟังก์ชันสมาชิก
  • ระบุไดเร็กทอรีการทำงานของอินพุตและเอาต์พุต
  • ระบุคอนโซลหรือสตรีมหน่วยความจำเป็นเทอร์มินัลเอาต์พุต
  • บันทึกไฟล์ XPS เอาต์พุตโดยใช้ [TeX::Typeset(System::String path, System::SharedPtrPresentation::Device อุปกรณ์, ระบบ::SharedPtr ตัวเลือก) 15 วิธีการที่มีอินสแตนซ์ของคลาส XpsDevice

โค้ดตัวอย่างต่อไปนี้สาธิตวิธีแปลงไฟล์ 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>());
// ค่าเริ่มต้น. ไม่ต้องระบุ.
// ระบุสตรีมหน่วยความจำเป็นเทอร์มินัลเอาต์พุต หากคุณไม่ต้องการให้เอาต์พุตเทอร์มินัลเขียนไปยังคอนโซล
//ตัวเลือก TerminalOut = ใหม่ 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>());
// ค่าเริ่มต้น. ไม่ต้องระบุ.
// ระบุสตรีมหน่วยความจำเป็นเทอร์มินัลเอาต์พุต หากคุณไม่ต้องการให้เอาต์พุตเทอร์มินัลเขียนไปยังคอนโซล
//ตัวเลือก TerminalOut = ใหม่ 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 ที่ซิปได้ ต่อไปนี้เป็นขั้นตอนในการบรรลุเป้าหมายนี้

  • โหลดไฟล์เก็บถาวร ZIP อินพุตและเอาต์พุตในสตรีม
  • สร้างอินสแตนซ์ของคลาส TeXOptions โดยใช้ TeXConfig::ObjectTeX(System::SharedPtrAspose::TeX::ResourceProviders::FormatProvider formatProvider = nullptr) ฟังก์ชันสมาชิก
  • ตั้งค่าไดเร็กทอรีการทำงานของอินพุตและเอาต์พุต
  • ระบุคอนโซลหรือสตรีมหน่วยความจำเป็นเทอร์มินัลเอาต์พุต
  • ส่งอินสแตนซ์ของคลาส PdfSaveOptions ไปยัง TeXOptions->setSaveOptions(System::SharedPtrAspose::TeX::Presentation::SaveOptions ค่า) วิธีการ
  • บันทึกไฟล์ PDF เอาต์พุตซิปโดยใช้ [TeX::Typeset(System::String path, System::SharedPtrPresentation::Device อุปกรณ์, ระบบ::SharedPtr ตัวเลือก) 27 วิธีการที่มีอินสแตนซ์ของคลาส PdfDevice

โค้ดตัวอย่างต่อไปนี้แสดงวิธีแปลงไฟล์เก็บถาวร 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 ได้โดยไม่มีข้อจำกัดในการประเมินโดยขอ ใบอนุญาตชั่วคราวฟรี

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีแปลงไฟล์ TeX เป็นรูปแบบ XPS และ PDF โดยใช้ C++ นอกจากนี้ คุณได้เรียนรู้วิธีแปลงไฟล์ TeX ในไฟล์ ZIP เป็นไฟล์ PDF ที่ซิปแล้ว Aspose.TeX for C++ มีคุณสมบัติเพิ่มเติมมากมายสำหรับการทำงานกับไฟล์ TeX คุณสามารถสำรวจ API โดยละเอียดได้โดยไปที่ เอกสารอย่างเป็นทางการ ในกรณีที่มีคำถามใดๆ โปรดติดต่อเราได้ที่ ฟอรัมสนับสนุนฟรี

ดูสิ่งนี้ด้วย