Bu script ChatGPT tarafından yazılmıştır. Aşırı kaliteli veya hypelanacak bir şey değildir. İşime yaradı, paylaşayım dedim.
Belki elle de yapsam olurdu ama 79 sayfalık bir sunum olduğu için biraz uğraştırıcı olurdu. Dediğim gibi belki kolay yolu vardır ama boyutlar da farklı olduğu için ben bilemedim.
Örnek vermek gerekirse, PDF'i normal yollarla PPTX'e çevirince böyle oluyordu. Beyaz yerler ve içerik olan kısım sayfanın tamamı. Yani aşağıda veya sağda böyle boşluklar oluşuyordu.
GPT ile konuşmadan sonra şöyle bir script verdi:
Neden?
Normalde bunun için araçlar var fakat ben bugün farklı bir şey için geldim. Dün bir arkadaşım görsellerden oluşan bir PDF dosyası attı. Yani içindeki metinler seçilebilir değildi. Görsel, fotoğraf olarak bulunuyorlardı ve sayfalardaki görseller genel bağlamda birbirleriyle aynı boyutta değillerdi. Aralarında fark oluyordu. Bu da sunumda boşluklara sebep oluyordu. Belki bunu bir araçla vs. otomatik olarak yapabiliyoruzdur fakat ben varsa da bilmiyorum ve ChatGPT'ye sordum, böyle bir çözüm aldım ve paylaşmak istedim.Belki elle de yapsam olurdu ama 79 sayfalık bir sunum olduğu için biraz uğraştırıcı olurdu. Dediğim gibi belki kolay yolu vardır ama boyutlar da farklı olduğu için ben bilemedim.
Örnek vermek gerekirse, PDF'i normal yollarla PPTX'e çevirince böyle oluyordu. Beyaz yerler ve içerik olan kısım sayfanın tamamı. Yani aşağıda veya sağda böyle boşluklar oluşuyordu.
GPT ile konuşmadan sonra şöyle bir script verdi:
Python:
import os
from pdf2image import convert_from_path
from pptx import Presentation
def pdf_to_pptx(pdf_path, output_pptx_path):
# PDF'i görseller olarak dönüştür
images = convert_from_path(pdf_path)
# Yeni bir PowerPoint sunumu oluştur
presentation = Presentation()
# Her bir PDF sayfasını PowerPoint slaytı olarak ekle
for image in images:
slide = presentation.slides.add_slide(presentation.slide_layouts[6]) # Boş slayt
# Görselin boyutlarını al
image_width, image_height = image.size
slide_width = presentation.slide_width
slide_height = presentation.slide_height
# Görsellerin boyutlarını slayt boyutlarına göre oranlayarak ortala
aspect_ratio = image_width / image_height
if aspect_ratio > (slide_width / slide_height):
new_width = slide_width
new_height = slide_width / aspect_ratio
else:
new_height = slide_height
new_width = slide_height * aspect_ratio
left = (slide_width - new_width) / 2
top = (slide_height - new_height) / 2
# Görseli geçici dosyaya kaydet ve slayta ekle
temp_image_path = "temp_image.png"
image.save(temp_image_path)
slide.shapes.add_picture(temp_image_path, left, top, width=new_width, height=new_height)
os.remove(temp_image_path) # Geçici dosyayı sil
# Sunumu kaydet
presentation.save(output_pptx_path)
# Kullanım
pdf_path = r"pdfin/bulundugu/yol.pdf" # PDF dosyanın tam yolu
output_pptx_path = r"powerpoint/cıktısının/yeri.pptx" # Çıktı PPTX dosyası
pdf_to_pptx(pdf_path, output_pptx_path)
print(f"PowerPoint dosyası oluşturuldu: {output_pptx_path}")
Kullanımı
- Öncelikle CMD'den veya Terminal'den kütüphane indirmemiz gerekiyor. Aşağıdaki komutu yapıştırıp entera basın.
Kod:pip install pdf2image python-pptx
- macOS veya Linux için ise GPT böyle dedi:
MacOS/Linux: Paket yöneticisi ile yüklenebilirKod:brew install poppler
Kod:sudo apt install poppler-utils
- Daha sonra Windows'ta Poppler Binaries'i indirin. Göze batmayacak bir klasöre koyun ve
Librariy\bin
klasörünü PATH'e ekleyin. Örneğin benimkiC:\poppler-24.08.0\Library\bin
şeklinde. -
Windows arama çubuğuna "Sistem ortam değişkenlerini düzenleyin" yazın ve açın. Açılan programda "Gelişmiş" sekmesinde en aşağıdaki "Ortam değişkenleri" butonuna tıklayın. Açılan ekranda 2 adet yol penceresi olacak. Aşağıda olan "Sistem değişkenleri"nde "Path" veya "PATH" ismindeki satıra tıklayıp yine aşağıdaki "Düzenle" butonuna basın. Açılan pencerede "Yeni" deyip Poppler Binaries'in
bin
klasörünün yolunu yapıştırın. Benimki örnek verdiğim üzereC:\poppler-24.08.0\Library\bin
şeklindeydi. Daha sonra tamam butonuna basarak hepsini teker teker kapatın.
- Kullanırken ise en aşağıda bulunan
# Kullanım
yazan bölümde"pdf_path"
olan bölüme PDF'inizin tam konumunu yazın. ÖrneğinC:/Users/kullaniciadi/OneDrive/Desktop/örnek.pdf
şeklinde. PDF'in adresi tırnak işaretinin içinde olsun. Daha sonra hemen altındaki yerde de"output_pptx_path"
bulunan yerdeki tırnak işaretinin içine de dosyanızın hangi konuma hangi isimle çıkması gerektiğini yazın. O da örneğinC:/Users/kullaniciadi/OneDrive/Desktop/örnek.pptx
şeklinde olsun.
Not: Linux'ta veya macOS'ta kullanırken en aşağıdaki# Kullanım
bölümünde tırnak işaretinden evvel olan "r"yi siliniz. Her 2 satırda da. Anladığım kadarıyla bu Windows için.
- Bu verdiğim örnek adreslere göre masaüstünde bulunan
örnek.pdf
adındaki PDF dosyası PowerPoint dosyasına dönüşüp yine scripte belirttiğime göre masaüstündeörnek.pptx
olarak oluşacak.
- Şimdi bu scriptimizin bulunduğu dizinde terminali açıp komutla çalıştıralım.
Python:python pdf_to_pptx.py