Python'da PDF Dosyasi Nasıl Oluşturulur
PDF (Taşınabilir Belge Formatı), verilerin çevrimiçi gönderilip alınması için en popüler dijital dosya formatıdır. Öncelikle veri formatını korumak ve veriyi şifreli bir parola ile güvence altına almak için kullanılır. .pdf uzantısı, yazılım uygulamalarına, donanıma veya işletim sistemlerine bağımsızdır.
Bu makalede, Python programlama dilinde bir PDF dosyası oluşturacağız. Çevrimiçi mevcut bir sürü çevrim içi seçenek vardır ancak burada PDF dosyaları oluşturmak için bir Python kütüphanesi kullanacağız. Aşağıda, Python'da tek veya birden fazla sayfayla PDF belgeleri oluşturmak için iki ünlü kütüphane bulunmaktadır:
- Reportlab
- PDFKit
Yukarıda bahsedilen PDF Python kütüphanelerinden herhangi birini kullanarak PDF'ler oluşturabiliriz.
Python'da PDF Dosyası Nasıl Oluşturulur?
Her iki kütüphaneye de tek tek bakalım.
Reportlab kütüphanesi kullanılarak PDF Dosyaları Oluşturma
Reportlab kütüphanesi, PDF dosyalarını kolayca oluşturmak için kullanılabilen ücretsiz bir açık kaynak PDF araç setidir. Birden fazla sayfada belirli bir konumda resim ve metin eklemek için birçok çizim aracı sağlar. Ayrıca encryptCanvas yöntemi kullanarak şifreli PDF dosyaları oluşturabilirsiniz.
Kurulum
Reportlab'ı yüklemek için pip paket yöneticisi gereklidir. Bu, istediğiniz paketi pip komutu ile otomatik olarak indirip yükler. Sadece Windows cmd veya PowerShell'de aşağıdaki komutu yazın:
pip install reportlabpip install reportlabNot: Python kurulurken, yukarıdaki komutun herhangi bir yerden cmd veya PowerShell'de çalışması için yol ortam değişkenine eklenmelidir. Pip, güncellenmiş sürüm olduğu için Python 3+ için kullanılması önerilir.
Yeni Bir Python Dosyası Açın
Reportlab kütüphanesini kullanmak için bir Python dosyasına kod yazmamız ve PDF dosyaları oluşturmak için çalıştırmamız gerekecek.
- Windows arama çubuğundan Python'un varsayılan IDLE shell'ini arayın ve açın ve Ctrl + N tuşlarına basın veya Dosya sekmesinden 'Yeni Dosya' seçeneğini seçin. Bu, kod yazmak için metin editörünü açacaktır.
- Ardından, dosyayı uygun bir isimle kaydedin. Ben 'createpdf.py' ismini verdim.
PDF Oluşturmak için Python Kodu
Aşağıdaki kod, belge öğelerini çizecek ve PDF'yi birkaç saniye içinde oluşturacak:
# Importing required modules from ReportLab
from reportlab.pdfgen import canvas
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase import pdfmetrics
from reportlab.lib import colors
# File and document attributes
fileName = 'sample.pdf'
documentTitle = 'sample'
title = 'Create PDF'
subTitle = 'Using ReportLab !!'
# Creating a PDF object
pdf = canvas.Canvas(fileName)
# Setting the title of the document
pdf.setTitle(documentTitle)
# Registering a TrueType font
pdfmetrics.registerFont(TTFont('abc', 'Arial.ttf'))
# Creating the title by setting its font and placing it on the canvas
pdf.setFont('abc', 36)
pdf.drawCentredString(300, 770, title)
# Creating the subtitle by setting its font, color, and placing it on the canvas
pdf.setFillColorRGB(0, 0, 255) # Set color to blue
pdf.setFont("Courier-Bold", 24)
pdf.drawCentredString(290, 720, subTitle)
# Saving the PDF
pdf.save()# Importing required modules from ReportLab
from reportlab.pdfgen import canvas
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase import pdfmetrics
from reportlab.lib import colors
# File and document attributes
fileName = 'sample.pdf'
documentTitle = 'sample'
title = 'Create PDF'
subTitle = 'Using ReportLab !!'
# Creating a PDF object
pdf = canvas.Canvas(fileName)
# Setting the title of the document
pdf.setTitle(documentTitle)
# Registering a TrueType font
pdfmetrics.registerFont(TTFont('abc', 'Arial.ttf'))
# Creating the title by setting its font and placing it on the canvas
pdf.setFont('abc', 36)
pdf.drawCentredString(300, 770, title)
# Creating the subtitle by setting its font, color, and placing it on the canvas
pdf.setFillColorRGB(0, 0, 255) # Set color to blue
pdf.setFont("Courier-Bold", 24)
pdf.drawCentredString(290, 720, subTitle)
# Saving the PDF
pdf.save()Kod Açıklaması
Tüm modülleri ve paketleri içe aktardıktan sonra, bir PDF dosyasına yazılacak olan tüm içeriği ilk olarak başlatıyoruz.
fileName = 'sample.pdf'
documentTitle = 'sample'
title = 'Create PDF'
subTitle = 'Using ReportLab !!'fileName = 'sample.pdf'
documentTitle = 'sample'
title = 'Create PDF'
subTitle = 'Using ReportLab !!'Şimdi, PDF tuvalini oluşturuyoruz, belgenin başlığını ayarlıyoruz ve ardından uygun yazı tipi ve boyutlarıyla merkezi bir başlık ve alt başlık ekliyoruz.
# Creating a PDF object
pdf = canvas.Canvas(fileName)
# Setting the title of the document
pdf.setTitle(documentTitle)
# Registering a TrueType font
pdfmetrics.registerFont(TTFont('abc', 'Arial.ttf'))
# Creating the title by setting its font and placing it on the canvas
pdf.setFont('abc', 36)
pdf.drawCentredString(300, 770, title)
# Creating the subtitle by setting its font, color, and placing it on the canvas
pdf.setFillColorRGB(0, 0, 255) # Set color to blue
pdf.setFont("Courier-Bold", 24)
pdf.drawCentredString(290, 720, subTitle)# Creating a PDF object
pdf = canvas.Canvas(fileName)
# Setting the title of the document
pdf.setTitle(documentTitle)
# Registering a TrueType font
pdfmetrics.registerFont(TTFont('abc', 'Arial.ttf'))
# Creating the title by setting its font and placing it on the canvas
pdf.setFont('abc', 36)
pdf.drawCentredString(300, 770, title)
# Creating the subtitle by setting its font, color, and placing it on the canvas
pdf.setFillColorRGB(0, 0, 255) # Set color to blue
pdf.setFont("Courier-Bold", 24)
pdf.drawCentredString(290, 720, subTitle)Son olarak, her şey tuval üzerine çizildikten sonra PDF dosyasını kaydediyoruz.
# Saving the PDF
pdf.save()# Saving the PDF
pdf.save()Python'da Reportlab kullanarak basit bir PDF dosyası oluşturmak için drawString ve drawText yöntemlerini de kullanabiliriz.
PDFKit Kütüphanesi Kullanılarak PDF Dosyaları Oluşturma
PDFKit kütüphanesi, Python'da PDF dosyaları oluştururken en iyi yaklaşımlardan biridir. HTML kodu kullanarak PDF dosyaları oluşturabilir. Basit ve karmaşık HTML dosyaları veya URL'lerden HTML'yi piksel mükemmeliğinde yazdırılabilir PDF sayfasına dönüştürebilirsiniz. Ancak, PDFKit HTML'i PDF'e dönüştürmek için wkhtmltopdf özelliklerini entegre eder. Windows, Linux ve Mac için wkhtmltopdf yüklemek için bu bağlantıyı ziyaret edin.
Not: Windows işletim sisteminde, wkhtmltopdf program dosyalarına yüklenecektir.
Kurulum
PDFKit'i yüklemek için aşağıdaki komutu kullanın:
pip install pdfkitpip install pdfkitURL'den PDF Dosyaları Oluşturma
PDFKit kullanarak PDF dosyaları oluşturmak çok basit ve tek satırlık bir işlemdir.
import pdfkit
# Convert a webpage from a URL to a PDF file
pdfkit.from_url('http://google.com', 'out.pdf')import pdfkit
# Convert a webpage from a URL to a PDF file
pdfkit.from_url('http://google.com', 'out.pdf')HTML Dosyalarından PDF Dosyaları Oluşturma
import pdfkit
# Convert an HTML file to a PDF file
pdfkit.from_file('index.html', 'out.pdf')import pdfkit
# Convert an HTML file to a PDF file
pdfkit.from_file('index.html', 'out.pdf')HTML Şablonlarından PDF Dosyaları Oluşturma
HTML şablonlarını bir dize olarak geçirerek, bunları çıktı dosyası olarak bir PDF'ye dönüştürebilirsiniz.
import pdfkit
# HTML content to convert to PDF
html_string = """
<html>
<head>
<meta name="pdfkit-page-size" content="Legal"/>
<meta name="pdfkit-orientation" content="Landscape"/>
</head>
<body>Hello World!</body>
</html>
"""
# Convert HTML string to a PDF file
pdfkit.from_string(html_string, 'out.pdf')import pdfkit
# HTML content to convert to PDF
html_string = """
<html>
<head>
<meta name="pdfkit-page-size" content="Legal"/>
<meta name="pdfkit-orientation" content="Landscape"/>
</head>
<body>Hello World!</body>
</html>
"""
# Convert HTML string to a PDF file
pdfkit.from_string(html_string, 'out.pdf')PDFKit, HTML şablonları kullanarak Python'da kolayca PDF oluşturmaya olanak tanır.
IronPDF Kütüphanesi
IronPDF, .NET projelerinde PDF dosyaları oluşturmak için kullanışlı bir araçtır. Bu kütüphanenin yaygın kullanımlarından biri 'HTML'den PDF'ye' çizimidir, burada HTML bir PDF belgesi oluşturmak için tasarım dili olarak kullanılır.
IronPDF, HTML sayfalarını PDF dosyalarına dönüştürmek için bir .NET Chromium motoru kullanır. HTML'den PDF'ye dönüştürme ile, PDF'leri konumlandırmak veya tasarlamak için karmaşık API'leri kullanmaya gerek yoktur. IronPDF ayrıca HTML, ASPX, JS, CSS ve resimler gibi tüm standart web sayfası teknolojilerini destekler.
HTML5, CSS, JavaScript ve resimleri kullanarak bir .NET PDF kütüphanesi oluşturmanızı sağlar. PDF'ye kolayca düzenleme, damga ekleme ve başlık ve altbilgi ekleme imkanı tanır. Ayrıca, PDF metnini okuma ve resimleri çıkarma işlemlerini çok kolay hale getirir.
IronPDF ile başlamak için NuGet paketini yüklemeniz gereklidir (bu adımın doğrulanmış olduğundan veya bir .NET geliştirme ortamında çalıştırıldığından emin olun):
pip install ironpdf
Aşağıdaki örnek, doğrudan bir URL'den nasıl PDF oluşturacağınızı gösterir:
from ironpdf import ChromePdfRenderer
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from a URL
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/")
# Export to a file
pdf.SaveAs("url.pdf")from ironpdf import ChromePdfRenderer
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from a URL
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/")
# Export to a file
pdf.SaveAs("url.pdf")HTML kodundan, CSS veya JavaScript ile birlikte bir PDF dosyası oluşturmanıza yardımcı olacak aşağıdaki kod:
from ironpdf import ChromePdfRenderer
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from an HTML string using Python
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
# Export to a file
pdf.SaveAs("output.pdf")
# Advanced Example with HTML Assets
# Load external HTML assets: Images, CSS, and JavaScript.
# An optional BasePath is set as the file location to load assets from
myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", base_path=r"C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.pdf")from ironpdf import ChromePdfRenderer
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from an HTML string using Python
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
# Export to a file
pdf.SaveAs("output.pdf")
# Advanced Example with HTML Assets
# Load external HTML assets: Images, CSS, and JavaScript.
# An optional BasePath is set as the file location to load assets from
myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", base_path=r"C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.pdf")Yukarıdaki koddan görüldüğü gibi, oldukça basit ve temiz. HTML kodundan PDF dosyası oluşturmak için çok az satır kod gereklidir. Doğru sonuçlar sağlayarak hızlı, güvenilir ve zaman tasarrufu sağlayan bir çözümdür.
IronPDF'i indirip ücretsiz deneyin. Deneme süresinden sonra lisanslama $999 ile başlar.










