2017-05-11 7 views
0

Ich versuche, einen Ordner mit Bildern (jpg) mithilfe von FPDF in PDFs zu konvertieren. Dieser Code eignet sich hervorragend für die Bilder im Hochformat. Für die Bilder im Querformat werden sie jedoch auf das Hochformat gesetzt. Gibt es eine Möglichkeit, die Ausrichtung zu erkennen und dem PDF zuzuordnen?Seitenausrichtung beim Konvertieren von Bildern nach PDF mit FPDF (Python)

enter image description here

aktualisierten Code für fix

from fpdf import FPDF 
from PIL import Image 
import glob 
import os 

image_directory = r'C:\coolbro\test\yay\test' 

extensions = ('*.jpg','*.png','*.gif') 

imagelist=[] 
for ext in extensions: 
    imagelist.extend(glob.glob(os.path.join(image_directory,ext))) 

for imagePath in imagelist: 


    cover = Image.open(imagePath) 
    width, height = cover.size 

    if height > width: 

     pdf = FPDF(unit = "pt", format = "legal") 

     pdf.add_page() 

     pdf.image(imagePath, 0, 0, 600) 

     destination = os.path.splitext(imagePath)[0] 
     pdf.output(destination + ".pdf", "F") 

    if width > height: 

     pdf = FPDF("L", unit = "pt", format = "legal") 

     pdf.add_page() 

     pdf.image(imagePath, 0, 0, 0, 600) 

     destination = os.path.splitext(imagePath)[0] 
     pdf.output(destination + ".pdf", "F") 
+0

Wenn alles, was Sie Bilder wollen, sollten Sie bei img2pdf.py aussehen –

Antwort

1

Kommentar: Ich habe versucht, einen Weg zu finden, um die Orientierung

if Y > X: 
    # portrait 
else: 
    # landscape 
zu lesen

orientation = 'L' hinzufügen, zum Beispiel:

fpdf = FPDF(orientation = 'L', unit = 'mm', format='A4') 
+0

die Ausrichtung von L jetzt alle meine Portraitbilder abschneidet Hinzufügen. Ich habe einen Ordner mit Hoch- und Querformat. Zu viele, um manuell sortiert zu werden. Es scheint mit dem Code, den Sie auswählen müssen oder der anderen Ausrichtung. Ich habe versucht, einen Weg zu finden, die Orientierung zu lesen. – ajd018

+0

Ich habe meinen Code mit zwei "if" -Anweisungen aktualisiert. Könnte das ein Problem verursachen oder muss ich "else" verwenden? – ajd018

+1

@ ajd018: Es ist das gleiche, aber berechne 'X <> Y' zweimal. – stovfl