Description
I’m attempting to create a searchable PDF using your package. I have PDF files containing scanned books and their OCR data. However, the output PDF file contains ???? instead of the actual content.
Steps to Reproduce
func MakeSearchablePDF(src, dst string, pages []*models.OCRPage) error {
data, err := os.ReadFile(src)
if err != nil {
return errz.E("read source PDF file", err)
}
fontData, err := os.ReadFile("/Users/matrix/Downloads/Noto_Naskh_Arabic/static/NotoNaskhArabic-Regular.ttf")
if err != nil {
return errz.E("read font file", err)
}
doc, err := gpdf.Open(data, template.WithFont("NotoNaskhArabic", fontData))
if err != nil {
return errz.E("open PDF document", err)
}
for i := range pages {
err := doc.Overlay(i, func(pb *template.PageBuilder) {
fmt.Println("Putting tokens on page", i)
for _, b := range pages[i].Blocks {
for _, l := range b.Lines {
for _, t := range l.Tokens {
x := float64(t.BoundingBox.X1+t.BoundingBox.X2) / 2 * 100
y := float64(t.BoundingBox.Y2+t.BoundingBox.Y1) / 2 * 100
pb.Absolute(document.Pct(x), document.Pct(y), func(cb *template.ColBuilder) {
cb.Text(t.Content, template.FontFamily("NotoNaskhArabic"))
})
}
}
}
})
if err != nil {
return errz.F("set overlay on page %d: %w", i, err)
}
}
data, err = doc.Save()
if err != nil {
return errz.E("export searchable PDF document", err)
}
if err := os.WriteFile(dst, data, 0o644); err != nil {
return errz.E("write searchable PDF file", err)
}
return nil
}
Expected Behavior
Content Rendered as overlay on the pages.
Actual Behavior
?????
Go Version
go version go1.26.5 darwin/arm64
gpdf Version
v1.0.11
PDF Viewer (if relevant)
No response
Description
I’m attempting to create a searchable PDF using your package. I have PDF files containing scanned books and their OCR data. However, the output PDF file contains
????instead of the actual content.Steps to Reproduce
Expected Behavior
Content Rendered as overlay on the pages.
Actual Behavior
?????
Go Version
go version go1.26.5 darwin/arm64
gpdf Version
v1.0.11
PDF Viewer (if relevant)
No response