mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-15 01:18:26 +08:00
### Summary 1. refactor dataflow_service.go 2. guard nats message re-delivery 3. support document parse cancelling & re-run
49 lines
1.0 KiB
Go
49 lines
1.0 KiB
Go
package pdf
|
||
|
||
import (
|
||
"image"
|
||
|
||
pdf "ragflow/internal/deepdoc/parser/pdf/type"
|
||
)
|
||
|
||
// cropImageRect crops a rectangular region from an image.
|
||
func cropImageRect(img image.Image, x0, y0, x1, y1 int) image.Image {
|
||
b := img.Bounds()
|
||
if x0 < b.Min.X {
|
||
x0 = b.Min.X
|
||
}
|
||
if y0 < b.Min.Y {
|
||
y0 = b.Min.Y
|
||
}
|
||
if x1 > b.Max.X {
|
||
x1 = b.Max.X
|
||
}
|
||
if y1 > b.Max.Y {
|
||
y1 = b.Max.Y
|
||
}
|
||
out := image.NewRGBA(image.Rect(0, 0, x1-x0, y1-y0))
|
||
for y := y0; y < y1; y++ {
|
||
for x := x0; x < x1; x++ {
|
||
out.Set(x-x0, y-y0, img.At(x, y))
|
||
}
|
||
}
|
||
return out
|
||
}
|
||
|
||
// ── testPageImg: small test image for ocrMergeChars tests ─────────────
|
||
// 90×120 px at 216 DPI → 30×40 pt in PDF space after /3.0 scaling.
|
||
|
||
func testPageImg() image.Image {
|
||
return image.NewRGBA(image.Rect(0, 0, 90, 120))
|
||
}
|
||
|
||
// ── cellTexts: extract text strings from TSRCells ─────────────────────
|
||
|
||
func cellTexts(cells []pdf.TSRCell) []string {
|
||
t := make([]string, len(cells))
|
||
for i, c := range cells {
|
||
t[i] = c.Text
|
||
}
|
||
return t
|
||
}
|