我正在使用python制作.docx文件,但如果完全打开,则文件打开的速度非常慢。目的是拍摄一个文本文件和图片,并使文本的颜色与像素颜色匹配,以创建一个新文件,并在其中使用文本创建图像。
from PIL import Image
import numpy as np
import docx
from docx import Document
from docx.shared import RGBColor
f = open('Sherlock Holmes Script.txt')
lyrics = f.read()
pic = Image.open('SH2.jpg')
pix = pic.load()
if '\n' in lyrics:
lyrics = lyrics.replace('\n', " ")
doc = docx.Document()
style = doc.styles['Normal']
font = style.font
font.name = 'LM Mono 10'
font.size = docx.shared.Pt(6)
#Set margin size
#changing the page margins
sections = doc.sections
for section in sections:
section.top_margin = 0
section.bottom_margin = 0
section.left_margin = 0
section.right_margin = 0
section = doc.sections[-1]
section.page_width = docx.shared.Inches(17.55)
#section.page_height = docx.shared.Inches(28.1)
paragraph_format = doc.styles['Normal'].paragraph_format
paragraph_format.space_before = docx.shared.Pt(0)
paragraph_format.space_after = docx.shared.Pt(0)
pic_colors = pic.load()
color_list = []
for n in range(pic.height):
for m in range(pic.width):
color_list.append(pic_colors[m,n])
for i in range(len(lyrics)):
if i%pic.width == 0:
paraObj1 = doc.add_paragraph()
foo = paraObj1.add_run(lyrics[i])
font = foo.font
font.color.rgb = RGBColor(color_list[i][0],
color_list[i][1],
color_list[i][2])
doc.save('Sherlock 2.docx')
代码在不到一分钟的时间内运行,但是当我双击生成的文件LibreOffice Write时打开,但是.docx文件不会打开。一段时间后,我收到一条消息,说LibreOffice已停止响应。 .docx文件大约700kb,所以我希望它有点慢,但根本无法打开。
我认为LibreOffice和.docx文件可能有问题,因此我尝试使用Office Word Online打开它,它虽然可以打开,但是打开后一两分钟便崩溃了。
我在使用Python 3.6和LibreOffice的Ubuntu 18.04。我不确定这是笔记本电脑出现问题还是只接受这些文件很大并且可以使用。
非常感谢您的帮助!