fix: 修复页面空间不足时,图片展示不完全的问题
This commit is contained in:
parent
11c8d63789
commit
351709d08e
@ -129,6 +129,30 @@ func GeneratePDF(text, imageURL, outputPath, fontPath string) error {
|
||||
imageX := (210.0 - imageWidth) / 2
|
||||
currentY := pdf.GetY()
|
||||
|
||||
// 注册图片并获取原始尺寸,用于计算缩放后的高度
|
||||
imgInfo := pdf.RegisterImageOptions(tmpFile.Name(), gofpdf.ImageOptions{})
|
||||
if imgInfo == nil {
|
||||
return fmt.Errorf("注册图片失败")
|
||||
}
|
||||
|
||||
// 计算缩放后的图片高度(按比例缩放)
|
||||
// 原始宽度:原始高度 = 缩放后宽度:缩放后高度
|
||||
originalWidth, originalHeight := imgInfo.Extent()
|
||||
imageHeight := (imageWidth / originalWidth) * originalHeight
|
||||
|
||||
// A4页面高度297mm,底部边距10mm,计算可用的最大Y坐标
|
||||
pageHeight := 297.0
|
||||
bottomMargin := 10.0
|
||||
maxY := pageHeight - bottomMargin
|
||||
|
||||
// 检查当前页面剩余空间是否足够放下图片
|
||||
// 如果图片底部会超出页面可用区域,则添加新页面
|
||||
if currentY+imageHeight > maxY {
|
||||
pdf.AddPage()
|
||||
// 新页面从顶部边距开始
|
||||
currentY = 10.0
|
||||
}
|
||||
|
||||
// 添加图片
|
||||
// ImageOptions参数:图片路径、x坐标、y坐标、宽度、高度、是否流式布局、选项、链接
|
||||
// 高度设为0表示按比例自动计算
|
||||
|
||||
Loading…
Reference in New Issue
Block a user