ラテックスからPDF | C++

ラテックスをPDFに変換する方法

C ++のコードを詳細に見てみましょう。ラテックスをPDF形式に変換する最も簡単な方法を提供します。

                
            

したがって、私たちが最初に行う必要があること(まあ、時には最初のものではないこともあります)は、 テキサプティオンクラスのインスタンスを作成することです。これを行う唯一の静的方法は consoleappoptions()です。したがって、その名前の意味に困惑しないようにしましょう。このメソッドは、 TexConfigクラスの インスタンスを取ります。これは LaTexファイルの変換に正確に適しています。この構成は、Object Tex EngineにObject Latex形式をロードし、LaTexファイルを受け入れる準備ができているように指示します。オブジェクトラテックス形式は、実際には latex形式にすぎませんが、 オブジェクトTex特定のプリミティブを使用してページメトリックをセットアップすることを除きます。

必要なオプションの最初は outputworkingdirectoryで、TEX出力が記述されるスペースまたはエリアを定義します。 ここは、c ++ for Aspose.TeXの出力ディレクトリの概念の詳細です。この例では、 outputfilesystemdirectoryクラスを使用して、指定されたディレクトリまたはフォルダーに出力を書き込むことができます。

2番目のオプションは、 オブジェクトモデルのターゲット形式への変換を制御する SaveOptionsクラスインスタンスです。ラテックスをPDFに変換しているため、 PDFSaveOptionsクラスインスタンスです。

次に、 texjobクラスのインスタンスを作成する必要があります。ファイルシステムに保存されているラテックスファイルを変換したいので、 Thisバージョンのコンストラクターを使用します。ファイルへのフルパスを指定する必要があります。それ以外の場合、エンジンは現在のディレクトリ( currentDirectory)でそれを探しますが、おそらく見つけられないでしょう。それにもかかわらず、ファイルに .tex 1がある場合、拡張子を省略する場合があります。エンジンは自動的に追加されます。コンストラクターの2番目の引数は、 デバイスクラスインスタンスです。ラテックスをPDFに変換しているため、 PDFDeviceクラスインスタンスです。最後の議論として、最近準備された変換オプションに合格します。

今やるべきことは、仕事を 走るだけです。

実行が成功したかどうかに関係なく、私たちが見る最初の結果は端子出力になります。成功した場合、それは次のように見えます:

 1This is ObjectTeX, Version 3.1415926-1.0 (Aspose.TeX 21.8)
 2entering extended mode
 3
 4(<input_directory>\hello-world.ltx
 5LaTeX2e <2011/06/27>
 6(article.cls
 7Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
 8(size10.clo))
 9No file hello-world.aux.
10[1]
11(<output_directory>\hello-world.aux) )
12Output written on hello-world.pdf (1 page).
13Transcript written on hello-world.log.

出力ディレクトリとして指定したフォルダーに、エンジンの労働力の他の「果物」があります。これらはトランスクリプトファイルであり、ここにあります!、メイン出力PDFファイル。

メイン出力PDFファイルを書き込む代替方法

pdfdeviceクラスの別のコンストラクターがあります。これにより、結果のPDFファイルを代替方法で取得できます。

 1    // Create the stream to write the XPS file to.
 2    {
 3        System::SharedPtr<System::IO::Stream> pdfStream = System::IO::File::Open(System::IO::Path::Combine(RunExamples::OutputDirectory, u"any-name.pdf"), System::IO::FileMode::Create);
 4        // Clearing resources under 'using' statement
 5        System::Details::DisposeGuard<1> __dispose_guard_0({ pdfsStream});
 6        // ------------------------------------------
 7        
 8        try
 9        {
10            // Create conversion options for Object LaTeX format on Object TeX engine extension.
11            System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::get_ObjectLaTeX());
12            // Specify the file system working directory for the output.
13            options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(RunExamples::OutputDirectory));
14            // Initialize the options for saving in PDF format.
15            options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
16            // Default value.
17            // Run LaTeX to XPS conversion.
18            System::MakeObject<TeXJob>(System::IO::Path::Combine(RunExamples::InputDirectory, u"hello-world.ltx"), System::MakeObject<PdfDevice>(pdfStream), options)->Run();
19        }
20        catch(...)
21        {
22            __dispose_guard_0.SetCurrentException(std::current_exception());
23        }
24    }

指定されたディレクトリの any-name.pdf ファイルは、メインの出力PDFファイルになります。同時に、 画像出力とは異なり、変換オプションで定義された出力ディレクトリにPDFファイルは見つかりません。例外: any-name.pdf は、 outputFilesSystemDirectoryを使用して outputWorkingDirectoryオプションに割り当てられている同じファイルシステムディレクトリに(そのパスで)配置されます。

入力オプションについて

メイン入力ファイルに、基本的なラテックスシステムに含まれておらず、サポートされているパッケージに含まれていないパッケージなどの依存関係が必要な場合は、 rebyputWorkingDirectoryオプションを設定し、そのディレクトリに依存関係を設定し、 rebysputDirectoryオプションを設定する必要があります。依存関係は、サブディレクトリで任意に組織される場合があります。タイプセットプロセス、たとえば外部グラフィックファイルに沿って含める独自のファイルがある場合は、それらのファイルが収集される場所へのパスを使用して inputWorkingDirectoryを設定する必要があります。また、入力ディレクトリ内のどこかにメイン入力ファイルを配置し、 run()メソッドの相対パスを指定することもできます(または、メイン入力ファイルがルートにある場合はパスをまったく指定しません)。 ここは、c ++ Aspose.TeXの入力ディレクトリの概念の詳細であり、実装を提供しています。

他のTEXジョブオプションについて説明します ここ

c ++ apiのAspose.TeXに基づいて構築された無料のラテックスからPDFへの変換 Webアプリをチェックアウトすることもできます。

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.