Advertisement
meta1211

Untitled

Sep 17th, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.28 KB | None | 0 0
  1.  
  2. from docx import Document
  3.  
  4. code = "ыпврп лпыаы ыпдло лдвыд оапла дыада лпврд врпвы лооыв ваылв ралдд ыород роыра влпао дапоа алвдл рлвра рыппр длрпд пдпаа оплоа рылыы ыврпа пдвлл длвдд плваы плвды оыпда рорлд адыаы"
  5.  
  6. from docx.enum.style import WD_STYLE_TYPE
  7. from docx.shared import Inches, Pt
  8.  
  9. #https://python-docx.readthedocs.io/en/latest/api/text.html#docx.text.parfmt.ParagraphFormat
  10.  
  11.  
  12. def make_ex(document, ex_text, ex_title, style):
  13.    text_p = document.add_paragraph(style=change_format(style, 'ex'))
  14.  
  15. class doc_maker():
  16.     document = None
  17.     style = None
  18.     paragraphs = None
  19.     def _change_format(self, paragraph, format):
  20.         if format == 'ex':
  21.             paragraph_format = paragraph.paragraph_format
  22.             paragraph_format.left_indent = Inches(0.25)
  23.             paragraph_format.space_before = Pt(15)
  24.             paragraph_format.line_spacing = 1.5
  25.             paragraph_format.widow_control = True
  26.             paragraph_format.space_after = 2
  27.         if format == 'ex name':
  28.             paragraph_format = style.paragraph_format
  29.             paragraph_format.left_indent = Inches(0.25)
  30.             paragraph_format.space_before = Pt(12)
  31.             paragraph_format.widow_control = True
  32.         return paragraph_format
  33.  
  34.     def __init__(self):
  35.         self.document = Document()
  36.         self.style = self.document.styles.add_style('Indent', WD_STYLE_TYPE.PARAGRAPH)
  37.         self.paragraphs = []
  38.  
  39.     def save(self, path:str):
  40.         self.document.save('demo.docx')
  41.  
  42.     def write_ex_text(self, text):
  43.         p = self.document.add_paragraph()
  44.         #Position
  45.         paragraph_format = p.paragraph_format
  46.         paragraph_format.left_indent = Inches(0.25)
  47.         paragraph_format.space_before = Pt(15)
  48.         paragraph_format.line_spacing = 1.5
  49.         paragraph_format.widow_control = True
  50.         paragraph_format.space_after = 2
  51.         #Style
  52.         run = p.add_run(code)
  53.         run.bold = True
  54.         run.font.size  = Pt(15)
  55.         self.paragraphs.append(run)
  56.         return self
  57.  
  58.  
  59. #document.add_page_break()
  60. doc_maker().write_ex_text(code).write_ex_text(code).save('demo.docx')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement