2016-06-28 3 views
1

의 내가 예를 들어, 특정 텍스트 형식으로 내 DOCX 문서에서 특정 단락 있다고 가정 해 봅시다 : " 푸 바"
내가 원하는
이 단락의 템플리트와 같은 것을 만들어 동일한 문서에 여러 번 복사하십시오.
예제에서와 같이 텍스트를 복사하면 텍스트 서식을 잃어 버리는 것을 의미합니다.
복사 같은 문서에 단락 (파이썬 3.x를, DOCX)

 
from docx import Document 

document = Document('input.docx') 
template = document.paragraphs[0] 
for x in range(100): 
    document.add_paragraph(template.text) 
document.save('output.docx')

python-docx 라이브러리를 사용하여 일반적인 방법이 있습니까?
특히 파이썬과 장고를위한 다른 솔루션도 잘 알려져 있습니다!
미리 감사드립니다. 당신의 간단한 예에서

+0

귀하의 질문은 너무 추상적이어서 유용한 대답을 허용하지 않습니다. 일반적으로 문자 서식이있는 곳에서 다음 단계 (단락 내에서 실행)로 내려 가야합니다. 특정 목적을 좀 더 구체적으로 만들 수 있다면 더 나은 대답이 가능할 수 있습니다. 나는이 단서들과 함께 아래에 균열을 가져올 것이다. – scanny

답변

0

, 당신은 이런 식으로 뭔가를 할 수 :

def clone_run_props(tmpl_run, this_run): 
    this_run.bold = tmpl_run.bold 
    ... maybe other possible run properties ... 

template_paragraph = ... however you get this ... 
new_paragraph = document.add_paragraph() 
for run in template_paragraph: 
    cloned_run = new_paragraph.add_run() 
    clone_run_props(run, cloned_run) 
    cloned_run.text = ... however you get this ... 

이 방법을 작동합니다 문자 서식이 이 직접이 간접적 문자 스타일을 통해로서, 적용된하지 않을 경우을 적용하지만 경우 .

+0

더 일반적인 솔루션을 찾고 있는데, 사용자가 docx 템플릿을 업로드 할 때 (나는 템플릿이 무엇인지 알 필요조차 없다), 결과적으로 다른 템플릿으로 채워진 템플릿이 일정량 포함 된 문서를받는 것과 같습니다. 데이터베이스의 정보 (이름, 성 등). 단일 문서 작성은 훌륭하고 빠르지 만 queryset에 대한 해결책을 찾고 있습니다 :) 답변 해 주셔서 감사합니다! – Insolence357

+0

예제가 필요합니다. 언급하지 않은 많은 내용이 있습니다. 예를 들어 어디서 무엇을 넣을 것인지, "템플릿"문서가 준수해야하는 제한 사항을 어떻게 알 수 있는지 등이 있습니다. 텍스트에'{{name}} '과 같은 대체 문자열을 넣은 다음 대체 작업을하는 것과 같은 일반 문서 템플릿을 찾고 있다면 대체로 다른 (상당히 어려운) 문제를 이야기하고있는 것입니다. 'python-docx template substitution'에서 검색하면 더 많은 것을 찾을 수 있습니다. – scanny

+0

그게 바로 제가 말한 내용입니다. 당신의 충고에 감사드립니다. 나는 그것을 찾으려고 노력할 것입니다. 그러나 지금까지는 문제가 대체되지 않고 정규 표현식이 간단한 대체를 위해 훌륭하게 수행되고 있습니다. 쿼리 세트의 여러 객체에 대해 콘텐츠를 곱하지 못하고 있습니다. – Insolence357