[英]From a str list of lines written in LaTex, how to generate a pdf in Python?
我有一個字符串列表,其中每個元素都是一行 LaTex。
使用flask,如何生成要在請求時返回的pdf?
例如:
document = []
def add( toAdd ):
global document
document.append( toAdd )
def begin(item):
return "\\begin{"+str(item)+"}"
def end(item):
return "\\end{"+str(item)+"}"
@route('/pdf')
def populate_document( protocol, document ):
TITLE = "title"
AUTHOR = "author"
HEADER = "\\documentclass[12pt]{article}"
ENUMERATE = "enumerate"
DOCUMENT = "document"
STEPS = "steps"
steps = protocol[STEPS]
# KEEP AT TOP
add( HEADER )
# KEEP AT TOP
add( cmd( TITLE, protocol[TITLE] ) )
add( cmd( AUTHOR, protocol[AUTHOR] ) )
add( begin( DOCUMENT ) )
add( cmd( "section*", protocol[TITLE] ) )
add( end( ENUMERATE ) )
add( end( DOCUMENT ) )
### HOW TO COMPILE `document` and RETURN AS PDF?
如果需要,我很樂意進一步澄清。
提前致謝。
完成這項工作的關鍵包是latex 。 有了它,你可以做這樣的事情(從一個工作演示中提取):
from flask import Flask
from jinja2 import FileSystemLoader
from latex import build_pdf
from latex.jinja2 import make_env
app = Flask(__name__)
env = make_env(loader=FileSystemLoader('templates'))
@app.route('/')
def home():
latex_template = env.get_template('example.latex')
pdf = build_pdf(template.render(text='Hello World'))
return bytes(pdf), 200, {
'Content-Type': 'application/pdf',
'Content-Disposition': 'inline; filename="example.pdf"'}
其中example.latex
來自templates
文件夾。 將此轉換為從字符串中獲取 LaTex 留作練習。
這可以作為小文件的概念驗證。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.