Convert in to ppt donot cut down any content place it as it is in ppt
~/
~/attachments/04f49c76-b683-4acf-bc8c-20a2c713b4b4
python -c "from pypdf import PdfReader; p='/tmp/workspace/attachments/04f49c76-b683-4acf-bc8c-20a2c713b4b4/Tb national guidelines .pdf'; r=PdfReader(p); print('pages=',len(r.pages)); print('first_size=',float(r.pages[0].mediabox.width),float(r.pages[0].mediabox.height)); print('encrypted=',r.is_encrypted)"
mkdir -p "/tmp/workspace/tb-guidelines-ppt/src" "/tmp/workspace/tb-guidelines-ppt/output" "/tmp/workspace/tb-guidelines-ppt/assets" && python -c "import fitz; print('PyMuPDF',fitz.__doc__.split()[1])"
pip install --user PyMuPDF
~/tb-guidelines-ppt/src/pdf_to_ppt.py
from pathlib import Path
from io import BytesIO
import fitz
from pptx import Presentation
from pptx.util import Emu
PDF = Path('/tmp/workspace/attachments/04f49c76-b683-4acf-bc8c-20a2c713b4b4/Tb national guidelines .pdf')
OUT = Path('/tmp/workspace/tb-guidelines-ppt/output/Tb_national_guidelines_full_content.pptx')
# Render every original page as a high-resolution PNG and place one full page on each slide.
# This preserves all text, graphics, tables, and formatting without omission or reflow.
doc = fitz.open(PDF)
page0 = doc[0]
page_rect = page0.rect
ratio = page_rect.width / page_rect.height
slide_h_in = 10.0
slide_w_in = slide_h_in * ratio
EMU_PER_IN = 914400
prs = Presentation()
prs.slide_width = Emu(int(slide_w_in * EMU_PER_IN))
prs.slide_height = Emu(int(slide_h_in * EMU_PER_IN))
blank = prs.slide_layouts[6]
for n, page in enumerate(doc, 1):
# 2x PDF resolution is sharp while keeping the PowerPoint file practical.
pix = page.get_pixmap(matrix=fitz.Matrix(2, 2), alpha=False)
png = pix.tobytes('png')
slide = prs.slides.add_slide(blank)
slide.shapes.add_picture(BytesIO(png), 0, 0, width=prs.slide_width, height=prs.slide_height)
prs.core_properties.title = 'TB National Guidelines - Complete PDF Conversion'
prs.core_properties.subject = 'Each source PDF page is retained in full as one PowerPoint slide.'
prs.core_properties.author = 'Orris'
prs.save(OUT)
print(f'Created {OUT} with {len(prs.slides)} slides from {len(doc)} PDF pages.')
python "/tmp/workspace/tb-guidelines-ppt/src/pdf_to_ppt.py" && python -c "from pptx import Presentation; from pathlib import Path; p=Path('/tmp/workspace/tb-guidelines-ppt/output/Tb_national_guidelines_full_content.pptx'); prs=Presentation(p); print('slides=',len(prs.slides),'size=',prs.slide_width,prs.slide_height,'bytes=',p.stat().st_size); print('pictures_per_slide=',[len(s.shapes) for s in prs.slides[:3]], 'last=',len(prs.slides[-1].shapes))"
python -c "from pptx import Presentation; from pathlib import Path; p=Path('/tmp/workspace/tb-guidelines-ppt/output/Tb_national_guidelines_full_content.pptx'); prs=Presentation(str(p)); slides=list(prs.slides); print('slides=',len(slides),'bytes=',p.stat().st_size); print('shape_counts_first3=',[len(s.shapes) for s in slides[:3]],'last=',len(slides[-1].shapes)); print('all_one_picture=',all(len(s.shapes)==1 and s.shapes[0].shape_type==13 for s in slides))"