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



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

1. Làm cách nào để xem đầu ra TeX?

Để mở tệp TeX để có thể xem kết quả sắp chữ, hãy sử dụng [TeX Viewer] đa nền tảng ( https://products.aspose.app/tex/viewer/tex) . Nó cũng cho phép bạn lưu tập tin dưới dạng hình ảnh.

2. Tôi có thể ghi đầu ra TeX vào kho lưu trữ ZIP không?

Có, Giải pháp API này cung cấp chức năng như vậy. Bạn sẽ cần lớp OutputZipDirectory, lớp này triển khai một phương thức để lấy luồng tệp để ghi vào khi thư mục làm việc là kho lưu trữ ZIP.

3. Làm cách nào để ghi đầu ra TeX vào kho lưu trữ ZIP?

Tạo một thể hiện của lớp TeXOptions. Sau đó chỉ định thư mục làm việc của kho lưu trữ ZIP cho đầu ra. Chỉ định các tùy chọn lưu và chạy chuyển đổi. Cuối cùng, hoàn tất việc ghi đầu ra vào kho lưu trữ ZIP bằng cách gọi phương thức Finish().

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

TeX không thực sự là một định dạng. Nó đồng thời là ngôn ngữ lập trình và cũng là công cụ thông dịch hiểu ngôn ngữ này. Tệp TeX là tài liệu được tạo trong LaTeX. Tài liệu này có thể bao gồm đồ họa, bảng, biểu tượng, danh sách, công thức và phương trình.