Neue Zeilen/Tabulatoren werden im generierten Dokument in Leerzeichen umgewandelt
-
21-12-2019 - |
Frage
Ich habe ein Problem mit \n
Und \t
Stichworte.Wenn ich ein generiertes öffne .docx
In OpenOffice Alles sieht gut aus, aber wenn ich dasselbe Dokument öffne Microsoft Word Ich bekomme nur die letzten beiden Tabulatoren im Abschnitt "Surname"
und Leerzeichen anstelle von Zeilenumbrüchen/Tabulatoren in anderen Abschnitten.Was ist falsch?
p = document.add_paragraph('Simple paragraph')
p.add_run('Name:\t\t' + name).bold = True
p.add_run('\n\nSurname:\t\t' + surname)
Lösung
In Word wird das, was wir oft als Zeilenvorschub bezeichnen, in ein Absatzobjekt übersetzt.Wenn Sie leere Absätze in Ihrem Dokument haben möchten, müssen Sie diese explizit einfügen.
Zunächst sollten Sie sich jedoch fragen, ob Sie Absätze zur Formatierung verwenden. Dies ist eine gängige Praxis für Word-Benutzer, mit der Sie jedoch möglicherweise anders umgehen möchten, insbesondere durch die Verwendung der Leerzeichen-vor- und/oder Leerzeichen-nachher-Eigenschaften von ein Absatz.In HTML würde dies ungefähr padding-top und padding-bottom entsprechen.
Wenn Sie in diesem Fall nur die Zeilenumbrüche wünschen, sollten Sie Absätze wie diesen in Betracht ziehen:
document.add_paragraph('Simple paragraph')
p = document.add_paragraph()
p.add_run('Name:\t\t').bold = True
p.add_run(name)
document.add_paragraph()
p = document.add_paragraph()
p.add_run('Surname:\t\t').bold = True
p.add_run(surname)