Spaces:
Sleeping
Sleeping
| import pymupdf as fitz | |
| from PIL import Image, ImageDraw | |
| def create_rotated_pdf(): | |
| doc = fitz.open() | |
| page = doc.new_page() | |
| # Insert text at specific coordinates (100, 100) -> (200, 150) roughly | |
| page.insert_text((100, 100), "Hello World", fontsize=20) | |
| # Rotate page 90 degrees | |
| page.set_rotation(90) | |
| doc.save("rotated_test.pdf") | |
| return "rotated_test.pdf" | |
| def analyze_pdf(path): | |
| doc = fitz.open(path) | |
| page = doc[0] | |
| print(f"Page Rotation: {page.rotation}") | |
| print(f"Page Rect (unrotated): {page.rect}") | |
| # Pixmap | |
| pix = page.get_pixmap() | |
| print(f"Pixmap WxH: {pix.width}x{pix.height}") | |
| # Text Dict | |
| raw = page.get_text("dict") | |
| block = raw["blocks"][0] | |
| bbox = fitz.Rect(block["bbox"]) | |
| print(f"Text Bbox (raw): {bbox}") | |
| # Try transforming | |
| # page.rotation_matrix might not exist as a property, let's check dir | |
| if hasattr(page, "rotation_matrix"): | |
| mat = page.rotation_matrix | |
| print(f"Page.rotation_matrix: {mat}") | |
| t_bbox = bbox * mat | |
| print(f"Transformed Bbox: {t_bbox}") | |
| else: | |
| print("No page.rotation_matrix") | |
| doc.close() | |
| if __name__ == "__main__": | |
| pdf_path = create_rotated_pdf() | |
| analyze_pdf(pdf_path) | |