ReportLab Absatz-und Textformatierung
Mein Problem ist, dass bei der Verwendung von reportlab generieren Sie ein einfaches text-Dokument, verliert er alle Formatierungen. Ich habe es durch ein paar mal, um zu versuchen und zu Debuggen und das Problem scheint zu sein, wenn man das msgStr
zu Paragraph
es verliert die Formatierung gesendet.
Weiß jemand, wie zur Erstellung einer einfachen pdf-Datei unter Beibehaltung der aktuellen text-Formatierung
Code:
# PDF GENERATION LIBRARIES
# import the report lab PDF generation tools
from reportlab.lib.pagesizes import letter
from reportlab.lib.styles import ParagraphStyle
from reportlab.lib.units import inch
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, PageBreak
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
Parts = []
def sumFile(msgStr = None, COMPLETE = 0):
pdfmetrics.registerFont(TTFont('Inconsolata', 'Inconsolata-Regular.ttf'))
summaryName = SimpleDocTemplate(vehID+".pdf")
style = ParagraphStyle(
name='Normal',
fontName='Inconsolata',
fontSize=8,
)
msgStr.replace('\n','<br />')
if msgStr == "PageBreak":
parts.append(PageBreak())
else:
parts.append(msgStr)
if COMPLETE == 1:
genStr = "Generated using " + progName + " " + str(progVers)
parts.append(genStr)
print parts
summaryName.build(Paragraph(parts, style))
if __name__ == "__main__":
sumFile("%9s %s\n" % ("Bobby", "Sue"))
sumFile("{0:12}{1:7}{2:5}deg_C\tsmp {3}\n".format("20", "1000", "3.0", "535"))
sumFile("{0} {1}\n\n".format("09/06/2016", "11:51:39"))
InformationsquelleAutor Jim | 2016-06-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hoffe das ist was du suchst 🙂
Einige Dinge zu beachten:
1. Das argument summaryName.build() soll eine Liste.
2. Das erste argument Absatz() ist ein string und keine Liste.
3. Einfach schreiben msgStr.replace('\n','<br />') nicht ändern msgStr. Daher müssen Sie zuweisen.
Sie können sich diese Maus vs Python, Docs erfahren Sie mehr über ReportLab.
InformationsquelleAutor Jomy
Necro-Antwort: Was du suchst ist die font-mappings, die sagen ReportLab, welche Schriftarten zu verwenden, die innerhalb einer Schriftfamilie, wenn Fett-und Kursiv angegeben, mit html-tags. Ansonsten, wenn TrueType-Schriftarten verwenden, ReportLab nicht formatieren.
Nun können Sie
<strong>
und<em>
(oder<b>
und<i>
wenn Sie bevorzugen) und alles formatiert wird, wie Sie es erwarten.InformationsquelleAutor PartialOrder
Auf meinem windows-system musste ich feststellen das echte font-Dateinamen und verwenden Sie Sie dann wie unten.
Nun meine intra-Absatz Fett korrekt funktioniert.
InformationsquelleAutor dain