提供主Tex输入文件的其他方法| .NET的Aspose.TeX

将主要输入文件作为流提供给Tex引擎

到目前为止,我们只知道如何将 主输入文件传递给TEX引擎作为文件名,无论是完全指定还是简短形式,无论是扩展名还是没有扩展名。但是,“ Texjob”类的另一个 构造函数是第一个参数。如果出于某种原因,我们将主要输入文件中的主要输入文件中的其他形式除外,则很方便。这是可以实施的方式:

 1// Stream input with LaTeX document and XPS output
 2
 3// Create conversion options for Object LaTeX format upon Object TeX engine extension.
 4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
 5
 6// Specify a file system working directory for the output.
 7options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
 8
 9// Specify the console as the output terminal.
10options.TerminalOut = new OutputConsoleTerminal();
11
12// Define the saving options.
13options.SaveOptions = new XpsSaveOptions();
14
15// Create the XPS device.
16XpsDevice device = new XpsDevice();
17
18// Run the job with LaTeX document from memory stream.
19TeXJob job = new TeXJob(new MemoryStream(Encoding.ASCII.GetBytes(
20        @"\documentclass{article} \begin{document} Hello, World! \end{document}")),
21        device, options);
22job.Run();
23
24// For further output to look fine.
25options.TerminalOut.Writer.WriteLine();

请注意,所有输出文件都有名称 texput。那是因为引擎在任何地方都无法获得任何其他名称。 texput是默认作业名称。 此处此处是有关工作名称的详细信息。

从终端输入主Tex输入文件

“ Texjob”类还有另一个 构造函数,它根本不允许我们指定输入。那么,您可能会想知道什么是这样的TEX工作?这次我们将需要一个输入终端。 Tex发动机将要求我们从终端输入文件名。

这是代码:

 1// Enter main TeX input file from the terminal (interactive)
 2
 3// Create conversion options for default ObjectTeX format upon ObjectTeX engine extension.
 4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectTeX());
 5
 6// Specify a file system working directory for the input.
 7options.InputWorkingDirectory = new InputFileSystemDirectory(DataDir);
 8
 9// Specify a file system working directory for the output.
10options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
11
12// Specify the console as the output terminal.
13options.TerminalOut = new OutputConsoleTerminal();
14
15// Define the saving options.
16options.SaveOptions = new XpsSaveOptions();
17
18// Run the job. The TeX engine will ask to enter the file name from the terminal.
19// Note: This is an interactive example. In production, you would typically
20// provide input via TerminalIn property or use one of the other input methods.
21TeXJob job = new TeXJob(new XpsDevice(), options);
22job.Run();
23
24// For further output to look fine.
25options.TerminalOut.Writer.WriteLine();

运行后,发动机会粘贴,等待我们输入文件名(有或没有路径,有或没有扩展的情况):

终端窗口

这就是它在输出终端上的外观,即控制台:

 1This is ObjectTeX, Version 3.1415926-1.0 (Aspose.TeX 21.8)
 2entering extended mode
 3**<path_to_the_file>/hello-world.ltx
 4(<path_to_the_file>/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.xps (1 page).
13Transcript written on hello-world.log.

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.