저는 Element 클래스의 하위 클래스를 만들려고합니다. 그래도 시작하는 데 문제가 있습니다.lxml 요소 하위 클래스를 만드는 데 어려움이 있습니다.
from lxml import etree
try:
import docx
except ImportError:
from docx import docx
class File(etree.ElementBase):
def _init(self):
etree.ElementBase._init(self)
self.body = self.append(docx.makeelement('body'))
f = File()
relationships = docx.relationshiplist()
title = 'File'
subject = 'A very special File'
creator = 'Me'
keywords = ['python', 'Office Open XML', 'Word']
coreprops = docx.coreproperties(title=title, subject=subject, creator=creator,
keywords=keywords)
appprops = docx.appproperties()
contenttypes = docx.contenttypes()
websettings = docx.websettings()
wordrelationships = docx.wordrelationships(relationships)
docx.savedocx(f, coreprops, appprops, contenttypes, websettings,
wordrelationships, 'file.docx')
나는이 코드에서 출력되는 문서 (호환 기능 팩 2003) 워드의 내 버전을 열고 나에게 다음과 같은 오류를 제공 할 때 :이 파일은 워드 2007의 이전 베타 버전에서 만든 " 이 버전에서는 열 수 없습니다. "File 객체를 docx.newdocument()로 작성된 다른 Element로 대체하면 문서가 정상적으로 출력됩니다. 어떤 아이디어/조언?
생성자에'_init' 대신'__init__'을 사용하셨습니까? 또한,'docx.newdocument()'에 대해 [소스 코드] (https://github.com/mikemaccana/python-docx/blob/master/docx.py)를 검사하여 결과가 어떻게 보이는지 확인할 수 있습니다 . 누락 된 'document' 태그처럼 보입니다. 다만 추측 일뿐입니다. – Michael0x2a