You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GhostScript:ps2pdf转换PS为PDF后文件空白问题求助

问题解决:tkinter生成的PS转PDF空白

错误原因

你的代码存在两个关键问题:

  • 文件名不匹配:保存的PostScript文件是rectangle.ps,但转换PDF时指定的输入文件是post_script.ps,ps2pdf找不到有效源文件,生成空白PDF。
  • 画布渲染不彻底:注释了root.mainloop(),画布元素可能还没完成渲染就执行了保存操作,导致PS文件内容异常。

修正代码

import tkinter as tk
import subprocess

root = tk.Tk()
canvas = tk.Canvas(root, width=200, height=100)
canvas.pack()

# 创建图形元素
canvas.create_rectangle(25, 25, 150, 75, fill="blue")
canvas.create_text(62, 50, text="Python", fill="white")

# 强制更新画布,确保元素渲染完成
canvas.update()

# 保存PS文件
canvas.postscript(file="rectangle.ps", colormode='color')

# 销毁窗口,无需运行完整主循环
root.destroy()

# 执行PS转PDF,使用正确的文件名
process = subprocess.Popen(["ps2pdf", "rectangle.ps", "result.pdf"], shell=True)
process.wait()  # 等待转换完成

额外说明

  • canvas.update()会强制tkinter完成当前所有渲染任务,保证PS文件包含完整的画布内容。
  • process.wait()确保转换进程结束后再退出程序,避免因程序提前终止导致转换失败。

内容的提问来源于stack exchange,提问作者Diogo Barros

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 01:35:37