2016-06-13 13 views
0

Für eine bestehende DOCX-Datei, kann ich Schriftinformationen mit Python-docx zugreifen:Python: Wie Schriftart mit Python-DOCX-Bibliothek festlegen?

import docx 
doc = docx.Document(*some file*) 
some_font = doc.paragraphs[0].runs[0].font 

Aber wenn ich versuche, diese Schrift zu einem neuen Lauf in einem neuen Dokument zu beantragen, es scheitert:

newdoc = docx.Document() 
p = newdoc.add_paragraph() 
r = p.add_run(*some string*) 
r.font = some_font 

Es gibt einen Fehler zurück:

AttributeError: can't set attribute 

Was soll ich tun? Kann ich diese spezifische Schriftart auf eine neue Zeichenfolge anwenden?

Ich benutze Python 3.4 auf einem Windows 64-Bit-Rechner.

Antwort

2

Die kurze Antwort ist Nein. Sie können einem Lauf kein Font-Objekt direkt zuweisen. Ein Font-Objekt bietet Zugriff auf eine Vielzahl von Formatierungseigenschaften auf Zeichenebene wie Schriftart, Größe, Farbe, Unterstreichung usw .; es kann nicht sofort auf einen anderen Lauf angewendet werden.

Sie können jedoch einen Schriftnamen zuweisen, das ist, was die Leute oft meinen, wenn sie das Wort Schrift verwenden.

some_typeface_name = doc.paragraphs[0].runs[0].font.name 
r = p.add_run('some string') 
r.font.name = some_typeface_name