Chuyển đổi TeX sang PDF hoặc Tệp XPS theo phương pháp lập trình bằng C ++

Tệp TeX được sử dụng để sắp chữ các tài liệu và sách khác nhau có chứa văn bản, ký hiệu và biểu thức số học. Ngoài ra, các tệp này có thể tạo ra các đầu ra như PDF, XPS và các định dạng hình ảnh khác nhau. Trong bài viết này, bạn sẽ học cách chuyển đổi tệp TeX sang định dạng XPS và PDF bằng C ++.

API C ++ để chuyển đổi định dạng TeX sang PDF và XPS

Aspose.TeX for C ++ là thư viện C ++ để làm việc với các tệp TeX mà không yêu cầu cài đặt thêm bất kỳ phần mềm nào. API cho phép bạn sắp chữ các tệp TeX và tạo đầu ra ở các định dạng như XPS, PDF, PNG, JPEG, TIFF, BMP. Bạn có thể cài đặt API thông qua NuGet hoặc tải xuống trực tiếp từ phần Tải xuống.

PM> Install-Package Aspose.TeX.Cpp

Chuyển đổi định dạng TeX sang XPS bằng C ++

Bạn có thể chuyển đổi tệp TeX sang định dạng XPS chỉ trong một vài dòng mã. Để đạt được điều này, vui lòng làm theo các bước dưới đây.

Đoạn mã mẫu sau đây trình bày cách chuyển đổi tệp TeX sang định dạng XPS bằng C ++.

// Tạo các tùy chọn sắp chữ cho định dạng ObjectTeX mặc định trên phần mở rộng công cụ ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

// Chỉ định một thư mục làm việc của hệ thống tệp cho đầu vào.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));

// Chỉ định một thư mục làm việc của hệ thống tệp cho đầu ra.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

// Chỉ định bảng điều khiển làm thiết bị đầu cuối đầu ra.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// Mặc định. Không cần chỉ định.
// Chỉ định luồng bộ nhớ làm đầu ra đầu ra, nếu bạn không muốn đầu ra đầu cuối được ghi vào bảng điều khiển.
//options.TerminalOut = new OutputMemoryTerminal();

// Chạy sắp chữ.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<XpsDevice>(), options);

// Để có thêm đầu ra để xem viết.
options->get_TerminalOut()->get_Writer()->WriteLine();

Chuyển đổi định dạng TeX sang PDF bằng C ++

Sau đây là các bước để chuyển đổi tập tin TeX sang định dạng PDF.

Đoạn mã mẫu sau đây cho thấy cách chuyển đổi tệp TeX sang định dạng PDF bằng C ++.

// Tạo các tùy chọn sắp chữ cho định dạng ObjectTeX mặc định trên phần mở rộng công cụ ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

// Chỉ định một thư mục làm việc của hệ thống tệp cho đầu vào.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));

// Chỉ định một thư mục làm việc của hệ thống tệp cho đầu ra.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

// Chỉ định bảng điều khiển làm thiết bị đầu cuối đầu ra.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// Mặc định. Không cần chỉ định.
// Chỉ định luồng bộ nhớ làm đầu cuối đầu ra, nếu bạn không muốn đầu ra đầu cuối được ghi vào bảng điều khiển.
//options.TerminalOut = new OutputMemoryTerminal();

// Đặt PdfSaveOptions
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());

// Chạy sắp chữ.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

// Để có thêm đầu ra để xem viết.
options->get_TerminalOut()->get_Writer()->WriteLine();

Chuyển đổi thư mục TeX ZIP sang PDF ZIP Thư mục bằng C ++

Để chuyển đổi nhiều tệp TeX sang định dạng PDF trong một lần, bạn có thể thêm tệp TeX vào kho lưu trữ ZIP và chuyển đổi chúng thành tệp PDF nén. Sau đây là các bước để đạt được điều này.

Mã mẫu sau đây cho thấy cách chuyển đổi tệp lưu trữ TeX ZIP sang tệp lưu trữ ZIP PDF bằng C ++.

// Mở tệp zip nguồn trong luồng
System::SharedPtr<System::IO::Stream> inZipStream = System::IO::File::Open(System::IO::Path::Combine(u"SourceDirectory", u"zip-in.zip"), System::IO::FileMode::Open);
// Xóa tài nguyên trong câu lệnh 'using'
System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream });
// ------------------------------------------

try {
    // Mở tệp zip đầu ra trong một luồng
    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);
    // Xóa tài nguyên trong câu lệnh 'using'
    System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
    // ------------------------------------------

    try
    {
        // Tạo các tùy chọn sắp chữ cho định dạng ObjectTeX mặc định trên phần mở rộng công cụ ObjectTeX.
        System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

        // Chỉ định một thư mục làm việc lưu trữ ZIP cho đầu vào.
        options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));

        // Chỉ định một thư mục làm việc lưu trữ ZIP cho đầu ra.
        options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));

        // Chỉ định bảng điều khiển làm thiết bị đầu cuối đầu ra.
        options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
        // Mặc định. Không cần thiết phải chỉ định.

        // Tạo và chỉ định các tùy chọn lưu.
        options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());

        // Chạy sắp chữ.
        Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

        // Đối với kết quả đầu ra để nhìn ghi. 
        options->get_TerminalOut()->get_Writer()->WriteLine();

        // Hoàn thiện kho lưu trữ ZIP đầu ra.
        (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());
}

Nhận giấy phép miễn phí

Bạn có thể dùng thử API mà không có giới hạn đánh giá bằng cách yêu cầu giấy phép tạm thời miễn phí.

Sự kết luận

Trong bài viết này, bạn đã biết cách chuyển đổi tệp TeX sang định dạng XPS và PDF bằng C ++. Hơn nữa, bạn đã học cách chuyển đổi tệp TeX trong kho lưu trữ ZIP thành tệp PDF nén. Aspose.TeX cho C ++ cung cấp nhiều tính năng bổ sung để làm việc với các tệp TeX. Bạn có thể khám phá API chi tiết bằng cách truy cập tài liệu chính thức. Trong trường hợp có bất kỳ câu hỏi nào, vui lòng liên hệ với chúng tôi trên diễn đàn hỗ trợ miễn phí của chúng tôi.

Xem thêm