我用BeautifulSoup
得到一些HTML格式的文本。我想通过docx
run命令将所有斜体(标记I)、粗体(b)和链接(a href)转换为Word格式。在
我可以写一段:
p = document.add_paragraph('text')
我可以将下一个序列添加为粗体/斜体:
^{pr2}$直观地说,我可以找到所有特定的标记(即soup.find_all('i')
),然后观察索引,然后连接部分字符串。。。在
……但也许还有更好、更优雅的方式?在
我不希望库或解决方案只是把一个html页面转换成word并保存它们。我想要多一点控制。在
我拿着字典一无所获。以下是代码和视觉错误(源代码)和正确(期望)结果:
from docx import Document
import os
from bs4 import BeautifulSoup
html = '<a href="http://someurl.you">hi, I am link</a> this is some nice regular text. <i> oooh, but I am italic</i> ' \
' or I can be <b>bold</b> '\
' or even <i><b>bold and italic</b></i>'
def get_tags(text):
soup = BeautifulSoup(text, "html.parser")
tags = {}
tags["i"] = soup.find_all("i")
tags["b"] = soup.find_all("b")
return tags
def make_test_word():
document = Document()
document.add_heading('Demo HTML', 0)
soup = BeautifulSoup(html, "html.parser")
p = document.add_paragraph(html)
# p.add_run('bold').bold = True
# p.add_run(' and some ')
# p.add_run('italic.').italic = True
file_name="demo_html.docx"
document.save(file_name)
os.startfile(file_name)
make_test_word()
我只是编写了一些代码,将文本从tkinter文本小部件转换为word文档,包括用户可以添加的任何粗体标记。这对你来说不是一个完整的解决方案,但它可能会帮助你开始一个有效的解决方案。我想你得做一些正则表达式的工作,把超链接转移到word文档。堆叠格式标记也可能会变得棘手。我希望这有助于:
我回到它,使它能够解析出多个格式化标记。这将记录列表中正在使用的格式化标记。在每个标记处,都会创建一个新的跑步记录,并且该跑步记录的格式由正在播放的当前标记设置。在
^{pr2}$超链接功能感谢this question。我在这里担心的是,您将需要手动为您希望携带到docx的每个HTML标记编写代码。我想这可能是一个很大的数字。我已经给出了一些你可能想要解释的标签的例子。在
相关问题 更多 >
编程相关推荐