Introdução
Aspose.TeX FOSS for Python exposes a concise engine API built around three concepts: um ponto de entrada unificado (TeXJob), dispositivos de saída ligáveis (PdfDevice, DviDevice, SvgDevice), e dois tipos de fontes de entrada (FileInputSource, StringInputSource). Este artigo abrange cada componente e mostra como eles se combinam para produzir PDF, DVI, e saída SVG de marcação TeX.
TeXJob O ponto de entrada
TeXJob É a principal classe para conduzir o motor TeX. Aceita uma fonte de entrada, um sistema de comando e um dispositivo de controlo do tempo. dispositivo de saída e opcional TeXOptions, então executa o pipeline de configuração quando run() é chamado. O valor de retorno é o bytes de saída para os tipos de dispositivo que produzem uma única saída (PDF, DVI); para a saída SVG, as páginas são recuperadas do objeto de dispositivo. após o run() completa.
TeXOptions Configura o comportamento do motor. Construindo-o com padrões (TeXOptions()) utiliza as configurações TeX padrão adequadas para a maioria dos documentos.
Dispositivos de saída
PdfDevice
PdfDevice escreve o documento tipo para um fluxo de bytes PDF. É o padrão Dispositivo de saída para produção de entrada portátil e imprimível:
from aspose_tex import TeXJob, TeXOptions, PdfDevice, StringInputSource
pdf_bytes = TeXJob(StringInputSource("Hello, world!"), PdfDevice(), options=TeXOptions()).run()
with open("output.pdf", "wb") as f:
f.write(pdf_bytes)
Depois de… run(), os bytes devolvidos contêm o documento PDF completo.
DviDevice
DviDevice produz saída de formato Device Independent (DVI) o intermediário nativo O formato de TeX. A saída DVI pode ser consumida por ferramentas a jusante para renderização ou Processamento adicional:
from aspose_tex import TeXJob, TeXOptions, DviDevice, StringInputSource
dvi_bytes = TeXJob(StringInputSource("Hello!"), DviDevice(), options=TeXOptions()).run()
with open("output.dvi", "wb") as f:
f.write(dvi_bytes)
SvgDevice
SvgDevice Rende cada página tipo como um gráfico vetorial SVG. Depois do trabalho executado, get_all_pages() Retorna a lista de cadeias de bytes SVG por página:
from aspose_tex import TeXJob, TeXOptions, SvgDevice, StringInputSource
device = SvgDevice()
TeXJob(StringInputSource("Hello!"), device, options=TeXOptions()).run()
for i, svg in enumerate(device.get_all_pages()):
with open(f"page_{i}.svg", "wb") as f:
f.write(svg)
Fontes de entrada
FileInputSource
FileInputSource Leia marcas de TeX a partir de um .tex Este é o arquivo no disco. modo de entrada padrão ao definir documentos existentes:
from aspose_tex import TeXJob, TeXOptions, PdfDevice, FileInputSource
pdf_bytes = TeXJob(FileInputSource("document.tex"), PdfDevice(), options=TeXOptions()).run()
StringInputSource
StringInputSource Aceita marcação TeX como uma cadeia Python. Este modo de entrada é utilizado para a geração de marcações dinâmicas construindo TeX programaticamente e Digitar sem escrever no disco:
from aspose_tex import TeXJob, TeXOptions, PdfDevice, StringInputSource
tex = "Hello, world!"
pdf_bytes = TeXJob(StringInputSource(tex), PdfDevice(), options=TeXOptions()).run()
Combinação de componentes
Os três componentes trabalham juntos para formar um conjunto completo de configuração. Selecione a fonte de entrada que corresponde ao seu fluxo de dados e o dispositivo que coincide com o formato de saída:
from aspose_tex import TeXJob, TeXOptions, SvgDevice, FileInputSource
device = SvgDevice()
TeXJob(FileInputSource("report.tex"), device, options=TeXOptions()).run()
pages = device.get_all_pages()
print(f"{len(pages)} SVG pages produced")
Dicas e melhores práticas
- Utilização:
StringInputSourcepara fragmentos de TeX curtos ou gerados dinamicamente; utilizaçãoFileInputSourceA Comissão Europeia tem em conta o facto de a Comunidade não ter.texArquivos. PdfDeviceé o formato de saída mais portátil; utilizarSvgDevicequando incorporado Saúde e segurança dos dados de origem.- Reutilização
TeXOptionsO processo de análise é mais fácil, mas a informação deve ser fornecida com precisão. As mesmas configurações. - A Comissão
run()valor de retorno é:bytespara PDF e DVI; para SVG, os bytes são: extraído de:SvgDevice.get_all_pages()Depois de o trabalho terminar.
Resumo de referência da API
| Classe: | Função |
|---|---|
TeXJob | Ponto de entrada; impulsiona o pipeline de configuração do TeX |
TeXOptions | Configuração do motor; padrões funcionam para a maioria dos documentos |
PdfDevice | Dispositivo de saída que produz bytes PDF |
DviDevice | Dispositivo de saída que produz bytes DVI |
SvgDevice | Dispositivo de saída que produz SVG por página via get_all_pages() |
FileInputSource | Input de um .tex Arquivo em disco |
StringInputSource | Entrada de uma cadeia Python |