Sắp chữ TeX với I/O ZIP

Chuyển đổi TeX sang PDF bằng cách sử dụng các kho lưu trữ ZIP làm đầu vào và đầu ra. API cho C++

 

Ngôn ngữ TeX là một công cụ sắp chữ cho phép bạn tạo các tài liệu chuyên nghiệp mà không cần bận tâm về việc định dạng. Với TeX, bạn nhập văn bản thuần túy chứa các đoạn văn bản của một tài liệu cùng với các lệnh điều khiển đầu ra. Tại đầu ra, bạn sẽ nhận được một tệp đã được định dạng theo định dạng mong muốn (được chỉ định). Để hiểu rõ hơn về đầu vào và đầu ra của TeX, hãy tham khảo tài liệu TeX.

TeX cũng là một hệ thống mạnh mẽ và tiên tiến, nhưng nó không được sử dụng rộng rãi bên ngoài các vòng tròn học thuật và khoa học. Mặt khác, PDF là một định dạng di động có thể dễ dàng xem trên hầu hết các thiết bị và được chấp nhận rộng rãi hơn. Khả năng đọc PDF có mặt trên mọi thiết bị, trong hầu hết các trình duyệt hiện đại. Việc chuyển đổi TeX sang PDF cho phép chia sẻ các tài liệu với lượng khán giả rộng hơn và cung cấp một định dạng dễ tiếp cận hơn cho những người không có phần mềm chuyên dụng. Ngoài ra, PDF cung cấp một số lợi thế so với TeX, chẳng hạn như kết xuất phông chữ tốt hơn, hỗ trợ tính tương tác và kiểm soát kích thước cũng như bố cục trang dễ dàng hơn.

Mã C++ bên dưới sắp chữ một tệp TeX, tạo một PDF, sau đó được lưu vào một kho lưu trữ ZIP trên hệ thống tệp cục bộ. Để hoàn thành tác vụ này, hãy sử dụng Aspose.TeX API cho C++, đây là một công cụ xử lý và chuyển đổi tài liệu giàu tính năng, mạnh mẽ và dễ sử dụng. Để cài đặt API, hãy mở trình quản lý gói NuGet và tìm kiếm Aspose.TeX.Cpp. Ngoài ra, bạn có thể sử dụng lệnh sau trong Package Manager Console:

Package Manager Console Command

PM> Install-Package Aspose.TeX.Cpp

Trong mã bên dưới, TeX lấy tệp đầu vào chính từ một kho lưu trữ ZIP, chuyển đổi nó thành PDF và được ghi vào một kho lưu trữ ZIP khác. Làm theo hướng dẫn:

  1. Mở một luồng chứa kho lưu trữ ZIP sẽ đóng vai trò là thư mục làm việc đầu vào. Bạn có thể tùy chọn chỉ định một thư mục con trong kho lưu trữ. Nếu không, tệp sẽ được tìm kiếm trong toàn bộ kho lưu trữ.
  2. Tạo một luồng tệp cho một kho lưu trữ ZIP mới để đóng vai trò là thư mục làm việc đầu ra.
  3. Tạo các tùy chọn sắp chữ cho định dạng Object TeX trên phần mở rộng công cụ Object TeX.
  4. Chỉ định các thư mục làm việc của kho lưu trữ ZIP cho đầu vào và đầu ra bằng cách sử dụng các lớp InputZipDirectoryOutputZipDirectory .
  5. Chỉ định bảng điều khiển (console) làm thiết bị đầu cuối đầu ra.
  6. Sử dụng lớp PdfSaveOptions , chỉ định các tùy chọn lưu cho các tùy chọn sắp chữ.
  7. Khởi tạo lớp TeXJob truyền tên tệp đầu vào chính, một đối tượng PdfDevice mới được tạo và các tùy chọn sắp chữ làm đối số. Chạy chuyển đổi bằng cách gọi phương thức Run().
  8. Hoàn tất kho lưu trữ ZIP đầu ra.

Ví dụ mã C++: Chuyển đổi TeX sang PDF với đầu vào và đầu ra 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());
}



Câu hỏi thường gặp

1. Tôi có thể sắp chữ các tài liệu TeX bằng cách sử dụng tệp ZIP làm đầu vào không?

Aspose.TeX hỗ trợ đọc các tệp nguồn TeX từ các kho lưu trữ nén như tệp ZIP. Bạn có thể bao gồm tất cả các tệp cần thiết, bao gồm tệp nguồn TeX, hình ảnh và tài nguyên bổ sung, trong kho lưu trữ ZIP, sau đó chỉ định tệp ZIP làm đầu vào cho trình biên dịch LaTeX. Điều này cho phép tổ chức và phân phối các dự án LaTeX một cách thuận tiện, đặc biệt khi xử lý các tài liệu lớn hoặc phức tạp có nhiều phụ thuộc.

2. Có bất kỳ lợi ích nào khi sử dụng tệp ZIP để sắp chữ tài liệu TeX không?

Có, việc sử dụng tệp ZIP để sắp chữ tài liệu TeX mang lại một số lợi ích. Thứ nhất, tệp ZIP cung cấp một cách thuận tiện để đóng gói và sắp xếp nhiều tệp được liên kết với dự án LaTeX, bao gồm tệp nguồn TeX, thư mục, hình ảnh và tệp kiểu vào một kho lưu trữ nén duy nhất. Điều này giúp đơn giản hóa việc phân phối và chia sẻ tài liệu LaTeX, đặc biệt khi cộng tác với người khác hoặc chia sẻ dự án trực tuyến.

3. Làm cách nào để sắp chữ các tập tin TeX?

Để sắp chữ các tệp TeX bằng Giải pháp API Aspose.TeX, bạn cần tạo các tùy chọn chuyển đổi cho định dạng Object TeX hoặc Object LaTeX dựa trên tiện ích mở rộng công cụ Object TeX. Sau đó chỉ định thư mục làm việc của hệ thống tệp cho đầu ra. Cuối cùng, tạo một phiên bản của lớp TeXJob và chạy quy trình sắp chữ bằng phương thức TeXJob.Run().

TeX What is TeX File Format

TeX là một hệ thống dàn trang và ngôn ngữ lập trình cho phép tạo tài liệu chất lượng cao, đặc biệt với công thức toán học. Các tệp *.tex* là văn bản thuần, được xử lý bởi các engine TeX (pdfTeX, XeTeX, LuaTeX) để tạo ra PDF, DVI hoặc các định dạng khác.