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