Rehber ChatGPT ile PDF'teki görselleri ortalayarak PPTX'e dönüştüren script

Bu script ChatGPT tarafından yazılmıştır. Aşırı kaliteli veya hypelanacak bir şey değildir. İşime yaradı, paylaşayım dedim.

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.

1.png


1733051532774.png


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üklenebilir
    Kod:
    brew install poppler
    veya
    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 benimki C:\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 üzere C:\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ğin C:/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ğin C:/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

Sonuçlar​

1733056641863.png


1733056632211.png
 

Technopat Haberler

Yeni konular

Geri
Yukarı