|
from PIL import Image |
|
import os |
|
import docx |
|
import docx.oxml.ns as ns |
|
|
|
def get_positions(xml_file): |
|
i = 0 |
|
width = xml_file.split('cx="') |
|
height = xml_file.split('cy="') |
|
while(i < len(width)): |
|
temp = width[i].split('"')[0] |
|
if(temp.isnumeric()): |
|
width = temp |
|
break |
|
else: |
|
i+=1 |
|
i = 0 |
|
while(i < len(height)): |
|
temp = height[i].split('"')[0] |
|
if(temp.isnumeric()): |
|
height = temp |
|
break |
|
else: |
|
i+=1 |
|
return width, height |
|
|
|
def convert_to_png(imageslist): |
|
for image in imageslist: |
|
if(image.endswith('.png')): |
|
continue |
|
im = Image.open(image) |
|
im.save(image.split('.')[0]+'.png') |
|
imageslist[imageslist.index(image)] = image.split('.')[0]+'.png' |
|
os.remove(image) |
|
return imageslist |
|
|
|
|
|
def get_difference_with_template(styles_used_in_doc, template): |
|
styles_used_in_template = template.styles.names |
|
different_styles = [] |
|
for style in styles_used_in_doc: |
|
if style.name not in styles_used_in_template: |
|
if style.name not in [s.name for s in different_styles]: |
|
different_styles.append(style) |
|
return different_styles |
|
|
|
|
|
def update_table_of_contents(doc): |
|
|
|
settings_element = doc.settings.element |
|
|
|
|
|
update_fields_element = docx.oxml.shared.OxmlElement('w:updateFields') |
|
update_fields_element.set(ns.qn('w:val'), 'true') |
|
|
|
|
|
settings_element.append(update_fields_element) |
|
|
|
|
|
def left_part_until_number(s): |
|
for i, char in enumerate(s): |
|
if char.isdigit(): |
|
return s[:i] |
|
return None |
|
|
|
def get_title(path) -> str: |
|
if '/' not in path and '\\' not in path: |
|
res = path |
|
if '/' in path: |
|
res = path.split('/')[-1] |
|
if '\\' in path: |
|
res = path.split('\\')[-1] |
|
return res |