2017-05-11 13 views
0

FPDFを使用して画像のフォルダ(jpg)をPDFに変換しようとしています。このコードは、ポートレート形式の画像に適しています。風景の画像の場合は、ポートレート形式で表示されます。オリエンテーションを検出してそれをpdfに割り当てる方法はありますか?ページFPDF(python)を使用して画像をpdfに変換するときの向き

enter image description here

修正のための更新されたコード

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

をしたいすべての画像の場合は、Lの向きが今、私のポートレート画像の全てを遮断する追加img2pdf.py –

答えて

1

コメント:私は

if Y > X: 
    # portrait 
else: 
    # landscape 
向きを読むための方法を見つけるためにしようとしていました

例えば、orientation = 'L'を追加します。

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

をご覧ください。私はポートレートと風景の画像を持つフォルダを持っています。手動で並べ替える項目が多すぎます。あなたが選択しなければならないコードや他の方向性があるようです。私はオリエンテーションを読む方法を見つけようとしていました。 – ajd018

+0

2つのif文を使ってコードを更新しました。これは問題を引き起こすか、「else」を使用する必要がありますか? – ajd018

+1

@ ajd018:これは同じですが、 'X <> Y'を2回計算します。 – stovfl

関連する問題