#!/usr/bin/env python3 """ Simple Example: Highlight a Word on Tap This is the minimal example showing how to: 1. Load an ebook 2. Simulate a tap 3. Find the word at that location 4. Highlight it Perfect for understanding the basic query system. """ from PIL import Image, ImageDraw from pyweblayout_ereader import EbookReader def main(): # 1. Create reader and load book reader = EbookReader(page_size=(800, 1000)) reader.load_epub("tests/data/test.epub") # 2. Get current page as image page_img = reader.get_current_page() # 3. Simulate a tap at pixel coordinates tap_x, tap_y = 200, 300 result = reader.query_pixel(tap_x, tap_y) # 4. If we found a word, highlight it if result and result.text: print(f"Tapped on word: '{result.text}'") print(f"Bounds: {result.bounds}") # Draw yellow highlight x, y, w, h = result.bounds overlay = Image.new('RGBA', page_img.size, (255, 255, 255, 0)) draw = ImageDraw.Draw(overlay) draw.rectangle([x, y, x + w, y + h], fill=(255, 255, 0, 100)) # Combine and save highlighted = Image.alpha_composite( page_img.convert('RGBA'), overlay ) highlighted.save("highlighted_word.png") print("Saved: highlighted_word.png") else: print("No word found at that location") reader.close() if __name__ == "__main__": main()