Ghi đầu ra vào ZIP

Lưu kết quả chuyển đổi tệp TeX dưới dạng ZIP qua C++

 

TeX là ngôn ngữ đánh dấu dữ liệu và là cốt lõi của hệ thống sắp chữ máy tính còn được gọi là hệ thống bộ xuất bản. Mặc dù nó thường được gọi là định dạng tệp, nhưng nó thực sự là một ngôn ngữ lập trình và công cụ thông dịch được sử dụng để tạo các tài liệu toán học, kỹ thuật và các tài liệu phức tạp khác. Tuy nhiên, sau khi tệp được tạo, có thể cần phải chuyển đổi tệp đó sang định dạng phổ biến hơn để có thể sử dụng kết quả trên mọi thiết bị và nền tảng.

Giải pháp API Aspose.TeX cung cấp một tính năng để chuyển đổi các tệp TeX và lưu kết quả dưới dạng tệp lưu trữ ZIP. Đoạn mã được cung cấp ở đây cho biết cách chuyển đổi tệp TeX thành PDF và lưu đầu ra dưới dạng tệp zip. Trình chuyển đổi API có thể chuyển đổi các tệp TeX bằng ngôn ngữ C++ và có thể được sử dụng để tạo ứng dụng đa nền tảng hoặc được tích hợp vào dự án C++ của bạn.

Để chạy các ví dụ, bạn sẽ cần API Aspose.TeX for C++, một công cụ chuyển đổi và thao tác tài liệu giàu tính năng và dễ sử dụng dành cho nền tảng C++. Bạn có thể cài đặt API Aspose.TeX bằng cách tìm kiếm nó trong trình quản lý gói NuGet hoặc bằng cách sử dụng lệnh Install-Package Aspose.TeX trong Bảng điều khiển quản lý gói.

Package Manager Console Command


    PM> Install-Package Aspose.TeX

Mã ở đây đang chuyển đổi tệp TeX và lưu tệp dưới dạng PDF trong kho lưu trữ ZIP. Thực hiện các bước tiếp theo để xử lý chuyển đổi đó:

  1. Tạo một phiên bản của Lớp [TeXOptions]( https://reference.aspose.com/tex/cpp/aspose.tex/texoptions/ . Sử dụng nó để chỉ định thư mục làm việc của kho lưu trữ ZIP cho đầu ra bằng cách sử dụng thuộc tính OutputWorkingDirectory.
  2. Chỉ định bảng điều khiển làm thiết bị đầu cuối đầu ra bằng cách sử dụng Lớp OutputConsoleTerminal .
  3. Xác định các tùy chọn để lưu kết quả đầu ra bằng cách sử dụng Lớp PdfSaveOptions .
  4. Chạy chuyển đổi TeX sang PDF bằng Phương thức TeXJob cho PdfDevice.
  5. Tinh chỉnh đầu ra.
  6. Hoàn thiện kho lưu trữ ZIP đầu ra bằng cách sử dụng Lớp OutputZipDirectory . Mã này sử dụng khối try-catch để xử lý bất kỳ trường hợp ngoại lệ nào có thể xảy ra trong quá trình này.

Mã C++ để sử dụng các thư mục ZIP cho đầu ra

    using Aspose::TeX::IO;
    using Aspose::TeX::Presentation::Pdf;
    using System::IO;
    // 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 '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 'using' statement
            System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream});
            // ------------------------------------------

            try
            {
                // Create typesetting options for default ObjectTeX format on ObjectTeX 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 the console as an output terminal.
                options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
                // Default. Not necessary to specify.

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

                // For the consequent output to look right. 
                options->get_TerminalOut()->get_Writer()->WriteLine();

                // 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());
        }
    }

TeX Những gì là TeX Tập Tin Định Dạng

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.