Python İle Görselleri PDF hale getirme[Slide Share örneği]

Zeref

Uzman üye
13 Nis 2014
1,960
3
fy
Merhaba tüm tht ahalisi büyüklerin ellerinden küçüklerin gözlerinden öperim.Bu gün BGA da dolaşırkene bir bakayım dedim bunların kaynakları vs varmı ? Sonra SlideShare üzerinden bir çok Pdf paylaştıklarını gördüm amma biraz daha baktıkça bazı içeriklerin indirilebilir olmadığını gördüm hemen kaynağı görüntüle dedim ve bir baktım dedim ben bunları python ile indirir üzerine birde PDF yaparım dedim deyiş o deyiş giriştim yapmaya yalnız daha önce python ile pdf vs işlerine girmemiştim baktım bakim hazır modül varmı diye Allahtan varmış.FPDF modülü iyi güzel herşey tamamdı fakat hazırladığım scriptte doğru düzgün pdf oluşturulmuyordu.Yani ekleniyordu ama şekillerde kayma falan oldu başta o kısım az biraz deneme yanılma ile halletim.yalnız baya bir modül kullandım onları yüklemeniz lazım kullanmak için :D

1.URLLİB Request(yüklemenize gerek yok dahili olarak mevcut)
2.BeautifulSoup (pip kullanarak çok kolay kurabilirsiniz)
3.FPDF (aynı şekilde piple kurabilirsiniz.)


Scripti herhangi bir klasöre atıp orda çalıştırırsanız iyi olur çünkü her resim dosyasını alt bulunduğu dizine kayıt ediyor.Başka işlerdede kullanırım diyerek bu şekilde yapmayı tercih ettim.

isterseniz bir editler kayıt etmedende yapmasını sağlayabilirsiniz direk pdf oluşturur bu sayede.

R0L71Z.png

JaroaW.png






indirmek isteyene:İndir Slide Share


Copy-Pastecilere gelsin

Kod:
import urllib.request
from fpdf import FPDF
from bs4 import BeautifulSoup

#Bu kısımda mevcut slayta ait source kodları çekiyoruz.
url=input("Lütfen İndirmek istediğiniz slayt dosyasının bulunduğu web urlsini yazın:")
response=urllib.request.urlopen(url)
data=response.read()
response.close()
liste=[]
#elde ettiğimiz dosyayı aşağıda parse ediyoruz ve gerekli olan kısımları Liste adındaki listede tutuyoruz.
soup=BeautifulSoup(data,’html.parser’)
for i in soup.find_all(’img’,attrs={"class":"slide_image"}):
    liste.append(i["data-full"])
sayaç=0

#benim yaptığım örnek 300 sayfalı bir slayt idi onda hatasız bir şekilde ilerledi.
#liste tam istediğim şekilde oluştu o yüzden ekstra işlem yapmama gerek kalmadı 300 sayısınıda listenin len özelliğini kullanrak aldım
#indirdiğim resimleri mevcut dizine kayıt ettirdim.
for i in liste:
    sayaç=sayaç+1
    image=urllib.request.urlopen(i)
    byte=image.read()
    image.close()
    f=open(str(sayaç)+".jpg","wb")
    f.write(byte)
    f.close()
    print(sayaç,"nolu sayfa bitti.")
    

#burasıda pdf haline getirdiğim kısım zaten basit
sayaç=0
imagelist=[]
pdf = FPDF()
while sayaç<int(len(liste)):
    sayaç=sayaç+1
    imagelist.append(str(sayaç)+’.jpg’)

print(’Bir kısım İşlem tamamlandı.’)

for image in imagelist:
    pdf.add_page(’P’)
    pdf.image(image,10,10,190,278)#şu kısımda rakamlar tamamen deneme yanılmayla buldum görsele göre ayarlamak lazım.
    print(image," bitti")

print("PDF Çıktısı oluşturuluyor Lütfen bekleyin.")

pdf.output("YeniPDF.pdf", "F")

print("bitti")


Son Söz ben bunu ne için yaptım slidesharedeki dosyaları daha ulaşılabilir kılmak için sizlerlede paylaşıyorum umarım işinize yarar.Kullanımı basit slaytın urlyi yapıştır.Bekle o halleder gerisini zaten.


test ederken yaptığım pdf dosyası hacking içerikli ddos anlatıyor isteyen indirebilir.:İndir YeniPDF pdf
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.