Takip et

Python ile PDF Oluşturma: fpdf Kütüphanesi ve Uygulamaları

Python ile PDF Oluşturma: fpdf Kütüphanesi ve Uygulamaları

Merhaba, ben Fatih Soysal. Bu makalede, Python programlama dili ile PDF dosyası oluşturmanın pratik ve etkili bir yolunu, fpdf kütüphanesini kullanarak ele alacağız. fpdf kütüphanesi, PDF oluşturma işlemini oldukça kolaylaştıran, açık kaynaklı ve kullanımı basit bir araçtır. Öncelikle kütüphaneyi pip install fpdf2 komutu ile kurabilirsiniz. Bu kurulumdan sonra, PDF dosyanızı oluşturmaya başlayabilirsiniz.

Verilen Python kod örneği, fpdf kütüphanesinin temel kullanımını göstermektedir. Kod, bir PDF nesnesi oluşturur, otomatik sayfa kırma özelliğini ayarlar, yeni bir sayfa ekler ve son olarak da yazı stili ve boyutu belirleyerek metin ekler. Bu örnek, daha karmaşık PDF belgelerinin temelini oluşturur. Örneğin, bu kod bloğu bir kapak sayfası oluşturmaya uygun şekilde düzenlenebilir. Daha detaylı ve kapsamlı PDF’ler oluşturmak için, kütüphanenin sunduğu diğer fonksiyonları kullanabilirsiniz.

from fpdf import FPDF

# PDF nesnesi oluştur
pdf = FPDF()

# Otomatik sayfa kırma ayarları
pdf.set_auto_page_break(auto=True, margin=15)

# Yeni sayfa ekle
pdf.add_page()

# Yazı stili ve boyutu ayarları
pdf.set_font("Arial", style="", size=12)

# Başlık ekle
pdf.set_font("Arial", style='B', size=16)
pdf.cell(200, 10, "KAJIAN TEORI: TEORI DAN PRAK")

# PDF'i kaydet (Dosya adı belirleyin)
pdf.output("ornek.pdf")

Bu kod, basit bir PDF dosyası oluşturur. Ancak, fpdf kütüphanesi ile çok daha fazlasını yapabilirsiniz. Resim eklemek, tablo oluşturmak, çizgiler çizmek ve daha birçok özellik, kütüphanenin sunduğu geniş fonksiyon yelpazesi sayesinde mümkündür. Kütüphanenin resmi dokümantasyonuna buradan ulaşabilirsiniz. Daha kapsamlı projeler için, örneğin bir rapor oluşturmak veya bir form tasarlamak için bu fonksiyonlardan faydalanabilirsiniz. Bununla birlikte, daha gelişmiş grafikler ve düzenlemeler için, reportlab gibi diğer kütüphanelere yönelebilirsiniz.

Örneğin, bir akademik makale için PDF oluştururken, kapak sayfasını, içerik tablosunu, bölüm başlıklarını ve kaynakçayı otomatik olarak oluşturmak üzere fpdf kütüphanesini gelişmiş fonksiyonlarıyla kullanabilirsiniz. Bu, zaman kazandıran ve daha düzenli bir çalışma sunan etkili bir yöntemdir. Ayrıca, kütüphanenin özellikle metin işlemedeki esnekliği, PDF’lerinizi daha kişiselleştirilebilir hale getirmenize olanak tanır.

Örnek Uygulama – 1

from fpdf import FPDF

# PDF oluştur
pdf = FPDF()
pdf.add_page()
pdf.set_auto_page_break(auto=True, margin=15)

# Unicode destekleyen font ekle (DejaVu)
pdf.add_font(‘DejaVu’, ”, ‘/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf’, uni=True)
pdf.add_font(‘DejaVu’, ‘B’, ‘/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf’, uni=True)

# Başlık
pdf.set_font(“DejaVu”, ‘B’, 16)
pdf.cell(0, 10, “2 Haftalık Sınav Öncesi Çalışma Programı”, ln=True, align=”C”)
pdf.ln(5)

# Ders programı metni
pdf.set_font(“DejaVu”, ”, 12)

text = “””
Hafta İçi Çalışma (Okul sonrası)
Pazartesi (21.10)
17:00-17:50 – Matematik tekrar (Zor konular)
18:00-18:50 – Biyoloji tekrar + test
19:00-19:30 – İngilizce kelime & gramer
20:00-20:30 – Seçmeli ders tekrar

Salı (22.10)
17:00-17:50 – Din Kültürü konu tekrarı
18:00-18:50 – Felsefe konu tekrarı
19:00-19:30 – Almanca kelime
20:00-20:30 – Bilişim Teknolojileri kısa tekrar

Çarşamba (23.10)
17:00-17:50 – Matematik test çözümü
18:00-18:50 – Tarih tekrar
19:00-19:50 – Edebiyat konu tekrarı + soru
20:00-20:30 – İngilizce tekrar

Perşembe (24.10)
17:00-17:50 – Fizik konu tekrarı
18:00-18:50 – Kimya konu tekrarı
19:00-19:50 – Coğrafya tekrar + soru
20:00-20:30 – Güzel Sanatlar kısa tekrar

Cuma (25.10)
17:00-17:50 – Matematik test çözümü
18:00-18:50 – Edebiyat tekrar
19:00-19:30 – Beden Eğitimi / kısa tekrar
20:00-20:30 – Eksik dersler tekrarı

Cumartesi (26.10)
10:00-11:00 – Fizik konu tekrarı
11:15-12:15 – Fizik soru çözümü
13:30-14:30 – Bilişim konu tekrarı
14:45-15:45 – Bilişim soru çözümü

Pazar (27.10)
10:00-10:50 – Fizik tekrar (Sınav öncesi son tekrar)
11:00-11:50 – Bilişim tekrar (Sınav öncesi son tekrar)
12:30-13:00 – İngilizce kelime tekrarı (28.10 sınavı için)

Sınav Haftası (27.10 – 6.11)
27.10 – Fizik & Bilişim: Sabah kısa tekrar: Fizik formüller, Bilişim önemli konular
28.10 – İngilizce: 17:00-18:00 kelime, 18:00-18:30 gramer tekrar
30.10 – Coğrafya & Biyoloji: 10:00-11:00 Coğrafya tekrar, 11:15-12:15 Biyoloji soru çözümü, 16:00-16:50 Biyoloji tekrar
31.10 – Almanca & Din: 10:00-10:50 Almanca tekrar, 11:00-11:50 Din kısa tekrar
3.11 – Türk Dili ve Edebiyat: 10:00-10:50 konu tekrarı, 11:00-11:50 soru çözümü
4.11 – Matematik: 10:00-10:50 formüller & zor konular, 11:00-11:50 soru çözümü
5.11 – Tarih & Temel Dini Bilgiler: 10:00-10:50 Tarih tekrar, 11:00-11:50 Temel Dini Bilgiler kısa tekrar
6.11 – Kimya & Felsefe: 10:00-10:50 Kimya tekrar, 11:00-11:50 Felsefe tekrar + test
“””

pdf.multi_cell(0, 8, text)

# PDF kaydet
file_path = “/mnt/data/Sinav_Oncesi_Calisma_Programi.pdf”
pdf.output(file_path)
file_path

 

Örnek Uygulama -2

from fpdf import FPDF
from datetime import date

# Bugünün tarihi
today = date.today().strftime(“%d.%m.%Y”)

# PDF sınıfı tanımı
class PDF(FPDF):
def header(self):
self.set_font(“Arial”, “B”, 12)
self.cell(0, 10, “T.C.”, ln=True, align=”C”)
self.cell(0, 10, “……………….. İLKOKULU MÜDÜRLÜĞÜ’NE”, ln=True, align=”C”)
self.ln(10)

def footer(self):
self.set_y(-15)
self.set_font(“Arial”, “I”, 8)
self.cell(0, 10, f”Sayfa {self.page_no()}”, 0, 0, “C”)

# PDF oluşturma
pdf = PDF()
pdf.add_page()
pdf.set_auto_page_break(auto=True, margin=15)
pdf.set_font(“Arial”, “”, 12)

# Dilekçe metni
text = f”””
Konu: Sınıfta Yaşanan Davranış Sorunları Hakkında Ortak Başvuru

Okulunuz …………. sınıfında öğrenim gören çocuklarımız, aynı sınıfta bulunan bir öğrencinin sürekli olarak sergilediği agresif, saldırgan ve zarar verici davranışlardan olumsuz şekilde etkilenmektedir. Bu öğrenci, hem fiziksel hem de duygusal olarak arkadaşlarına zarar vermekte; sınıf ortamında huzursuzluğa neden olmaktadır.

Yaşanan bu durum;
– Çocuklarımızın okula gitmek istememelerine,
– Kendilerini güvende hissetmemelerine,
– Eğitim sürecine odaklanmakta zorluk yaşamalarına

sebep olmaktadır. Bu konuda sınıf öğretmeni ile daha önce görüşmeler yapılmış olsa da, sorun devam etmektedir.

Bu sebeple, okul yönetiminizden;
1. Söz konusu öğrenci için rehberlik servisi desteği alınmasını,
2. İlgili öğrenci ve velisinin yönlendirilerek gerekli psikolojik desteğin sağlanmasını,
3. Sınıf içi güvenliğin temin edilmesi için gerekli önlemlerin ivedilikle alınmasını

talep ediyoruz.

Çocuklarımızın sağlıklı ve güvenli bir eğitim ortamında bulunma hakkının korunmasını, yaşanan bu sorunun kalıcı ve yapıcı bir şekilde çözülmesini önemle rica ederiz.

Saygılarımızla arz ederiz.

Tarih: {today}
“””

pdf.multi_cell(0, 10, text)

# Tablo başlıkları
pdf.ln(10)
pdf.set_font(“Arial”, “B”, 11)
pdf.cell(45, 10, “Veli Adı Soyadı”, 1)
pdf.cell(30, 10, “İmza”, 1)
pdf.cell(45, 10, “Öğrenci Adı”, 1)
pdf.cell(20, 10, “Sınıfı”, 1)
pdf.cell(50, 10, “İletişim (İsteğe bağlı)”, 1)
pdf.ln()

# Boş satırlar
pdf.set_font(“Arial”, “”, 11)
for _ in range(5):
pdf.cell(45, 10, “”, 1)
pdf.cell(30, 10, “”, 1)
pdf.cell(45, 10, “”, 1)
pdf.cell(20, 10, “”, 1)
pdf.cell(50, 10, “”, 1)
pdf.ln()

# PDF dosyasını kaydet
pdf.output(“Toplu_Veli_Dilekçesi.pdf”)

 

Sonuç olarak, fpdf Python için güçlü ve kullanımı kolay bir PDF oluşturma kütüphanesidir. Basit uygulamalardan karmaşık raporlara kadar geniş bir yelpazede kullanılabilir. Daha fazla bilgi ve destek için kendi web sitemi fatihsoysal.com‘u ziyaret edebilirsiniz. Umarım bu makale, fpdf kütüphanesini daha iyi anlamanıza ve kullanmanıza yardımcı olmuştur.

#Etiketler: Python, fpdf, PDF, PDF Oluşturma, Kütüphane, Programlama, Kod Örneği, Reportlab, Dokümantasyon, Akademik Makale, Rapor Oluşturma

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorumları Göster (2)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

  1. from fpdf import FPDF

    # PDF oluştur
    pdf = FPDF(format=’A4′)
    pdf.set_auto_page_break(auto=True, margin=15)

    # Sayfa 1: Başlık
    pdf.add_page()
    pdf.set_font(“Arial”, ‘B’, 24)
    pdf.cell(0, 20, “Özdemir Asaf Sunumu”, ln=True, align=’C’)
    pdf.set_font(“Arial”, ”, 16)
    pdf.multi_cell(0, 10, “Modern Türk Şiirinin Özgün Sesi\n\nHazırlayan: [Senin İsmin]”, align=’C’)

    # Sayfa 2: Hayatı
    pdf.add_page()
    pdf.set_font(“Arial”, ‘B’, 18)
    pdf.cell(0, 10, “Hayatı”, ln=True)
    pdf.set_font(“Arial”, ”, 14)
    pdf.multi_cell(0, 8,
    “• Doğum: 11 Haziran 1923, Ankara\n”
    “• Gerçek Adı: Halit Özdemir Arun\n”
    “• Eğitim: Galatasaray Lisesi, Kabataş Lisesi\n”
    “• Önemli Nokta: Kendi matbaasını kurarak şiirlerini yayımladı\n”
    “• Vefat: 28 Ocak 1981, İstanbul\n\n”
    “Konuşma Notu:\nHalit Özdemir Arun, 1923’te Ankara’da doğmuş, Galatasaray ve Kabataş’ta eğitim görmüştür. Hayatı boyunca şiirden kopmamış, kendi matbaasını kurarak eserlerini yayımlamıştır.”
    )

    # Sayfa 3: Edebi Kişiliği
    pdf.add_page()
    pdf.set_font(“Arial”, ‘B’, 18)
    pdf.cell(0, 10, “Edebi Kişiliği”, ln=True)
    pdf.set_font(“Arial”, ”, 14)
    pdf.multi_cell(0, 8,
    “• Temalar: Aşk, yalnızlık, insan ilişkileri, zaman\n”
    “• Tarz: Yalın ama derin; kısa dizelerle güçlü etki\n”
    “• Öne Çıkan Özellik: Kendine özgü şiir dili, hem duygusal hem düşündürücü\n\n”
    “Konuşma Notu:\nÖzdemir Asaf şiirlerinde aşkı, yalnızlığı, insan ilişkilerini ve zamanı işler. Yalın dili sayesinde kısa dizeleri bile derin anlamlar taşır ve okuyucuyu etkiler.”
    )

    # Sayfa 4: Şiir
    pdf.add_page()
    pdf.set_font(“Arial”, ‘B’, 18)
    pdf.cell(0, 10, “Örnek Şiir: Yalnızlık Paylaşılmaz”, ln=True)
    pdf.set_font(“Arial”, ”, 14)
    pdf.multi_cell(0, 8,
    “Yalnızlık, yaşamda bir an,\n”
    “Hep yeniden başlayan..\n”
    “Dışından anlaşılmaz.\n\n”
    “Ya da kocaman bir yalan,\n”
    “Kovdukça kovalayan..\n”
    “Paylaşılmaz.\n\n”
    “Bir düşünde beni sana ayıran\n”
    “Yalnızlık paylaşılmaz\n”
    “Paylaşılsa yalnızlık olmaz.\n\n”
    “Konuşma Notu:\nŞiiri okurken yavaş ve duygulu oku. “Paylaşılmaz” kelimesinde vurgu yap. Ara ara sınıfa bakarak göz teması kur.”
    )

    # Sayfa 5: Kapanış ve Tüyolar
    pdf.add_page()
    pdf.set_font(“Arial”, ‘B’, 18)
    pdf.cell(0, 10, “Kapanış ve Sunum Tüyoları”, ln=True)
    pdf.set_font(“Arial”, ”, 14)
    pdf.multi_cell(0, 8,
    “Kapanış Cümlesi:\n”
    “Özdemir Asaf, kısa dizeleriyle hem duyguyu hem düşünceyi bir araya getiren, Türk şiirinin özgün ve etkileyici bir sesidir. Dinlediğiniz için teşekkür ederim.\n\n”
    “Sunum Tüyoları:\n”
    “• Slaytlarda az yazı, görsellerle destek\n”
    “• Konuşma notlarını küçük kağıtlardan takip et\n”
    “• Şiiri okurken duraklamalarla vurgu yap\n”
    “• Göz teması kur ve elleri doğal pozisyonda tut\n”
    “• Slayt açarken istersen hafif arka plan müziği ekleyebilirsin”
    )

    # PDF kaydet
    pdf_file = “Ozdemir_Asaf_Sunum_ve_Konusma.pdf”
    pdf.output(pdf_file)

    print(f”PDF oluşturuldu: {pdf_file}”)

    by Buse Naz Yaylacı
E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık