|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate) # preRotate 对应 PyMuPDF==1.18.17
mat = fitz.Matrix(zoom_x, zoom_y).prerotate(rotate) # prerotate 对应 PyMuPDF==1.22
能不能一个句子兼容2种 PyMuPDF 版本呢?
mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate) or fitz.Matrix(zoom_x, zoom_y).prerotate(rotate) 能行吗?
为了让代码兼容两种 PyMuPDF 版本,您可以通过检查 fitz.Matrix 对象是否具有 preRotate 或 prerotate 属性,然后相应地调用这些方法。您可以使用如下代码:
import fitz
# ... 其他代码 ...
zoom_x, zoom_y, rotate = 2.0, 2.0, 90 # 示例值,根据您的需求设置
mat = fitz.Matrix(zoom_x, zoom_y)
if hasattr(mat, "preRotate"):
mat = mat.preRotate(rotate) # 对应 PyMuPDF==1.18.17
elif hasattr(mat, "prerotate"):
mat = mat.prerotate(rotate) # 对应 PyMuPDF==1.22
else:
raise AttributeError("Neither 'preRotate' nor 'prerotate' method is found in fitz.Matrix.")
这样,您的代码将可以在两个版本的 PyMuPDF 中运行,而无需将两种方法组合成一行。 hasattr 函数将检查对象是否具有给定的属性,从而使代码兼容两种方法。
|
|