Convert in ppt as it is dont cut down content

Reading File
Reading File
Reading File
Browsing Directory

~/

Reading File
Reading File
Browsing Directory

~/attachments/dcbae56e-6db3-4201-a93b-a1a88962778a

Searching the Web

PDF to PowerPoint conversion preserve every page as slide best practice

Reading File
Reading File
Running Command

python -c "from pypdf import PdfReader; p='/tmp/workspace/attachments/dcbae56e-6db3-4201-a93b-a1a88962778a/Tb national guidelines .pdf'; r=PdfReader(p); print('pages',len(r.pages)); print('page0',float(r.pages[0].mediabox.width),float(r.pages[0].mediabox.height)); print('encrypted',r.is_encrypted)"

Browsing Directory

~/

Running Command

mkdir -p "/tmp/workspace/tb-national-guidelines-ppt/src" "/tmp/workspace/tb-national-guidelines-ppt/assets/pages" "/tmp/workspace/tb-national-guidelines-ppt/output" && python -c "import fitz; print('PyMuPDF', fitz.VersionBind)"

Running Command

python -c "import importlib.util; print('pymupdf',importlib.util.find_spec('pymupdf')); print('pypdfium2',importlib.util.find_spec('pypdfium2')); print('pdf2image',importlib.util.find_spec('pdf2image')); print('wand',importlib.util.find_spec('wand'))"

Running Command

python - <<'PY' from pathlib import Path import pypdfium2 as pdfium from PIL import Image src = Path('/tmp/workspace/attachments/dcbae56e-6db3-4201-a93b-a1a88962778a/Tb national guidelines .pdf') out = Path('/tmp/workspace/tb-national-guidelines-ppt/assets/pages') pdf = pdfium.PdfDocument(str(src)) for i in range(len(pdf)): page = pdf[i] bitmap = page.render(scale=2.0, rotation=0) img = bitmap.to_pil().convert('RGB') img.save(out / f'page_{i+1:03d}.jpg', 'JPEG', quality=93, optimize=True, progressive=True, subsampling=0) page.close() pdf.close() print('rendered', len(list(out.glob('*.jpg'))), 'pages') PY

Running Command

python - <<'PY' from pathlib import Path from pptx import Presentation from pptx.util import Emu from PIL import Image pages = sorted(Path('/tmp/workspace/tb-national-guidelines-ppt/assets/pages').glob('page_*.jpg')) out = Path('/tmp/workspace/tb-national-guidelines-ppt/output/Tb_national_guidelines_as_is.pptx') with Image.open(pages[0]) as im: wpx, hpx = im.size # preserve original A4 PDF page ratio precisely prs = Presentation() prs.slide_width = Emu(1191/72*914400) prs.slide_height = Emu(1684/72*914400) blank = prs.slide_layouts[6] for image_path in pages: slide = prs.slides.add_slide(blank) slide.shapes.add_picture(str(image_path), 0, 0, width=prs.slide_width, height=prs.slide_height) # Remove initial default? A new prs initially no slides prs.core_properties.title = 'TB National Guidelines' prs.core_properties.subject = 'PDF converted to PowerPoint, one original page per slide' prs.save(out) print(out, 'slides=',len(prs.slides), 'size=',out.stat().st_size) PY

Running Command

python - <<'PY' from pathlib import Path from pptx import Presentation from pypdf import PdfReader from PIL import Image pdf_path = Path('/tmp/workspace/attachments/dcbae56e-6db3-4201-a93b-a1a88962778a/Tb national guidelines .pdf') pptx_path = Path('/tmp/workspace/tb-national-guidelines-ppt/output/Tb_national_guidelines_as_is.pptx') prs = Presentation(pptx_path) reader = PdfReader(pdf_path) assert len(reader.pages) == 31 assert len(prs.slides) == len(reader.pages) assert all(len(s.shapes) == 1 and s.shapes[0].shape_type == 13 for s in prs.slides) print(f'PDF pages: {len(reader.pages)} | PPTX slides: {len(prs.slides)}') print(f'Slide size: {prs.slide_width} x {prs.slide_height} EMU') print(f'File exists: {pptx_path.exists()} | bytes: {pptx_path.stat().st_size}') PY

Converted without cutting any content. The PowerPoint has 31 slides, with each original PDF page preserved as a full-slide image.

Tb national guidelines as is

Presentation · PPTX

This is a shared conversation. Sign in to Orris to start your own chat.