| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import os
- from markdown_pdf import MarkdownPdf, Section
- import fitz
- docs_dir = r"c:/Users/lanfr144/Documents/DOPRO1/Antigravity/Food/docs"
- md_file = os.path.join(docs_dir, "Installation_Guide.md")
- with open(md_file, "r", encoding="utf-8") as f:
- md_content = f.read()
- # Clean paths
- root_dir = r"c:/Users/lanfr144/Documents/DOPRO1/Antigravity/Food"
- md_content = md_content.replace("file:///" + root_dir + "/docs/", "")
- md_content = md_content.replace("file:///" + root_dir + "/", "../")
- pdf = MarkdownPdf()
- section = Section(md_content, paper_size="A4", root=docs_dir)
- pdf.add_section(section)
- doc = pdf._make_doc()
- total_pages = len(doc)
- print("Before drawing, Page 2 text length:", len(doc[1].get_text()))
- image_path = os.path.join(docs_dir, 'am.png')
- doc_title = "Local Food AI - Detailed Installation and Deployment Guide"
- r_text = "DOPRO1"
- l_footer = "lanfr144"
- fontsize = 8
- fontname = "helv"
- for page_idx in range(total_pages):
- page = doc[page_idx]
- width = page.rect.width
- height = page.rect.height
-
- if os.path.exists(image_path):
- image_rect = fitz.Rect(48, 12, 48 + 16, 12 + 16)
- page.insert_image(image_rect, filename=image_path)
-
- m_width = fitz.get_text_length(doc_title, fontname=fontname, fontsize=fontsize)
- r_width = fitz.get_text_length(r_text, fontname=fontname, fontsize=fontsize)
- footer_text = f"Page {page_idx + 1} of {total_pages}"
- f_width = fitz.get_text_length(footer_text, fontname=fontname, fontsize=fontsize)
-
- page.insert_text(fitz.Point((width - m_width) / 2, 22), doc_title, fontname=fontname, fontsize=fontsize, color=(0.5, 0.5, 0.5))
- page.insert_text(fitz.Point(width - 48 - r_width, 22), r_text, fontname=fontname, fontsize=fontsize, color=(0.5, 0.5, 0.5))
- page.insert_text(fitz.Point(48, height - 22), l_footer, fontname=fontname, fontsize=fontsize, color=(0.5, 0.5, 0.5))
- page.insert_text(fitz.Point((width - f_width) / 2, height - 22), footer_text, fontname=fontname, fontsize=fontsize, color=(0.5, 0.5, 0.5))
- print("After drawing (in memory), Page 2 text length:", len(doc[1].get_text()))
- doc.save("scratch/test_drawn.pdf", clean=True, garbage=3, deflate=True)
- doc.close()
- doc2 = fitz.open("scratch/test_drawn.pdf")
- print("After saving, Page 2 text length:", len(doc2[1].get_text()))
- doc2.close()
|