Eu tenho usado rst2pdf
e pandoc
para converter o seguinte reStructuredText em PDF:
This is a python example::
def main():
print("Hello World!")
if __name__ == '__main__':
main()
And one for YAML::
server:
name: ts0
location: paris
embora os dois programas usem um mecanismo diferente para gerar PDF ( pandoc
exige que você instale o TeX para isso), o resultado é um arquivo PDF, do qual você não pode copiar e colar exemplos de código corretamente:
Ocódigodestacado(fundoverde)nãopossuiespaçosporqueosespaçosvaziossãogeradosnessesarquivosPDFcomdeslocamentos.
Copieecoleosresultadosemcódigoformatadoefeioparamuitosidiomas,masparalinguagensdeprogramaçãocomoOccamePythoneparaarquivosdeconfiguraçãonoYAML,issorealmentealteraosignificado.Sevocêtiversortequerealmentequebraascoisasevocêpercebe,masoexemploYAML,porexemplo,tambémestácorretosemosespaçosnoiníciodalinha,sótemumsignificadodiferente.
EssesexemplosdecódigoemcódigotambémacontecemnosdocumentosPDFgeradospelositereadthedocs.
Sevocêpegarasaídade:
pandocexample.rst-oexample.epub
evisualizaroarquivodeumapáginaresultante,vocêpodecopiarecolarocódigocorretamente.Sevocêconverteresseexample.epub
comcalibre(versão2.55.0)pormeiodesuainterfacedeusuário,obteráumarquivoPDFdoqualvocêpodecopiacorretamenteocódigo(comespaços),masoPDFresultanteconsistede3páginas.
Tentandoconverterapartirdalinhadecomando:
ebook-convertexample.epubexample.pdf
resultaemumaexceçãoderenderização,adicionandoaopção--old-pdf-engine
aconversãofunciona,masvocêaindatemumPDFde3páginasemvezdeumaúnicapágina.
ConvertendoviaHTML:
rst2htmlexample.rst>example.html;ebook-convertexample.htmlexample.pdfpandocexample.rst-oexample.html;ebook-convertexample.htmlexample.pdf
dá-lheumcódigoselecionávelcorreto:
, mas ao colar não há espaços para o recuo e até mesmo o espaço entre Hello
e World
desaparece. Além disso, em arquivos maiores, você tem quebras de página em lugares indesejados e o layout precisaria de ajustes extensos por meio de folhas de estilo.
Eu tentei converter via .odt
, mas acabou em arquivos PDF com texto completamente não selecionável.
Atendendo aos seguintes requisitos para a saída em PDF:
fragmentos de código - corretamente selecionados com espaços
- resultados semelhantes no layout ao de
rst2pdf
ou readthedocs
existem ferramentas de linha de comando para gerar um arquivo PDF, começando com um arquivo .rst
ou algum outro formato de marcação?