吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 931|回复: 33
收起左侧

[Python 原创] svg到jpg,jpg插入word,word转pdf

[复制链接]
zjg121 发表于 2024-3-25 20:41
[Python] 纯文本查看 复制代码
from docx import Document
from docx.shared import Inches
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
import comtypes.client
import cairosvg
from PIL import Image
import io


def svg_to_white_bg_jpg(svg_file, output_jpg_file):
    # 将SVG文件转换为PNG格式
    png_data = cairosvg.svg2png(url=svg_file)

    # 使用PIL库打开PNG文件
    img = Image.open(io.BytesIO(png_data))

    # 将图像背景设置为白色
    white_bg_img = Image.new("RGBA", img.size, "white")
    white_bg_img.paste(img, mask=img.split()[3])  # 使用alpha通道作为mask

    # 将修改后的图像保存为JPG格式
    white_bg_img.convert("RGB").save(output_jpg_file)


def word_to_pdf(word_path, pdf_path):
    # 创建Word应用程序的实例
    word = comtypes.client.CreateObject('Word.Application')
    word.Visible = False  # 不显示Word界面

    # 打开Word文档
    doc = word.Documents.Open(word_path)

    # 将Word文档保存为PDF
    doc.SaveAs(pdf_path, FileFormat=17)  # 17代表PDF格式

    # 关闭Word文档并退出Word应用程序
    doc.Close()
    word.Quit()


# 创建一个新的Word文档
doc = Document()

# 设置页边距  
section = doc.sections[0]
section.top_margin = Inches(0)
section.bottom_margin = Inches(0)
section.left_margin = Inches(0)
section.right_margin = Inches(0)

# 移除页眉页脚  
header = section.header
if header:
    p = header.paragraphs[0]
    p._element.getparent().remove(p._element)
footer = section.footer
if footer:
    p = footer.paragraphs[0]
    p._element.getparent().remove(p._element)

# 移除页眉页脚中的默认段落(如果有的话)
if doc.sections[0].header:
    for paragraph in doc.sections[0].header.paragraphs:
        p = paragraph._element
        p.getparent().remove(p)

if doc.sections[0].footer:
    for paragraph in doc.sections[0].footer.paragraphs:
        p = paragraph._element
        p.getparent().remove(p)

    # 添加一个段落并设置其对齐方式(如果需要)

# 使用示例
svg_file = "d:/1.svg"
output_jpg_file = "d:/1.jpg"
svg_to_white_bg_jpg(svg_file, output_jpg_file)

# 插入图片(假设你已经将SVG转换为PNG,并命名为'image.png')  
doc.add_picture('D:/1.jpg', width=Inches(8))

# 设置所有段落居中
for paragraph in doc.paragraphs:
    paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER

# 保存文档  
doc.save('d:/1.docx')

# 使用函数
word_to_pdf('d:/1.docx', 'd:/111.pdf')

qa.png

免费评分

参与人数 4吾爱币 +10 热心值 +3 收起 理由
bjjette + 1 + 1 谢谢@Thanks!
爱飞的猫 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
abc023119 + 1 谢谢@Thanks!
Zzzzzzz001 + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| zjg121 发表于 2024-3-25 22:15
licandy 发表于 2024-3-25 21:37
小白提问,有啥用?

挣钱。学会编程能提高收入。从干啥啥不行,到干啥都能干成,就自由了。
 楼主| zjg121 发表于 2024-3-26 12:56
耿梦莹123 发表于 2024-3-26 12:31
html里面有很多

这样的svg的话,怎么办

<svg xmlns="http://www.w3.org/2000/svg" role="img" focusable="false" viewBox="0 -661 345 672" aria-hidden="true" style="vertical-align: -0.025ex;width: 0.781ex;height: 1.52ex;"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="69" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g></g></g></svg> 把这段代码先提取出来,写入空白的txt文件,然后把扩展名改为svg,就成了一个svg图片。上面这段代码就就个小写手写英语字母i,其它格式相同的,按方法处理即可。
hhy668 发表于 2024-3-25 21:02
anxingye 发表于 2024-3-25 21:04
学习了,很棒
siluozi 发表于 2024-3-25 21:08
&#128077;赞赞赞
sai609 发表于 2024-3-25 21:11
wps有自带的啊
JackyLam 发表于 2024-3-25 21:14
牛牛的!已学习!
ChengKong 发表于 2024-3-25 21:15
学习了,感谢分享
swwdd 发表于 2024-3-25 21:31
学习学习,努力进步
licandy 发表于 2024-3-25 21:37
小白提问,有啥用?
ghoob321 发表于 2024-3-25 21:40

学习了,很棒
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-3 17:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表