Spaces:
Sleeping
Sleeping
| import fitz # PyMuPDF | |
| def scale_vector_text(input_pdf, output_pdf, scale_factor=1.2, thickness_factor=1.2): | |
| """ | |
| Scale and adjust thickness of vector-based text in a PDF. | |
| Args: | |
| input_pdf (str): Path to the input PDF. | |
| output_pdf (str): Path to save the modified PDF. | |
| scale_factor (float): Factor to scale the size of text. | |
| thickness_factor (float): Factor to adjust the thickness of text. | |
| """ | |
| doc = fitz.open(input_pdf) | |
| for page in doc: | |
| # Process vector paths for size and thickness adjustments | |
| try: | |
| for shape in page.get_drawings(): | |
| for path in shape["items"]: | |
| if "bbox" in path: | |
| # Scale bounding box for size | |
| x0, y0, x1, y1 = path["bbox"] | |
| path["bbox"] = ( | |
| x0 * scale_factor, | |
| y0 * scale_factor, | |
| x1 * scale_factor, | |
| y1 * scale_factor, | |
| ) | |
| # Adjust stroke thickness | |
| if "line_width" in path: | |
| path["line_width"] *= thickness_factor | |
| except Exception as e: | |
| print(f"Error processing vector paths on page {page.number + 1}: {e}") | |
| doc.save(output_pdf) | |
| print(f"Modified PDF saved to {output_pdf}") | |