On 2020-12-01 01:20, Michael Baca wrote:
Hello, new to the group, rather new to programming.

I'm writing a program that takes images and converts them into PDF's. It works 
after quite a few days of trying, however the final file has a blank page 
inserted before and after each page containing the images.

This uses FPDF to do the conversion. I've been up and down trying to figure out 
where I'm adding an extra page, so it might be an FPDF issue.

def multi_convert(pdf_Filename, file_path):
     if (dir):
         file_list = []
         print(""), print("")
         print("Converting... This may take awhile depending on the number of 
images.")
for entry in os.scandir(file_path):
             if (entry.path.endswith(".jpg") or entry.path.endswith(".png")) 
and entry.is_file():
                 file_list.append(entry.path)
     else:
         print("Error: ")
         print("Invalid Directory - {}", dir)
     cover = Image.open(str(file_list[0]))
     width, height = cover.size

     pdf = FPDF(unit="pt", format=[width, height])

     for page in file_list:
         pdf.add_page()
         pdf.image(str(page))

     pdf.output(file_path + pdf_Filename + ".pdf", "F")
     exit()

It says in the documentation for the .image method:

"""
x:

Abscissa of the upper-left corner. If not specified or equal to None, the current abscissa is used (version 1.7.1 and up).

y:

Ordinate of the upper-left corner. If not specified or equal to None, the current ordinate is used; moreover, a page break is triggered first if necessary (in case automatic page breaking is enabled) and, after the call, the current ordinate is moved to the bottom of the image (version 1.7.1 and up).
"""

In other words, you're not specifying where the top-left corner of the image should go, so it's putting it at the current position, wherever that is, and it's responding to the positioning by inserting additional pages.

The solution is to specify the images' positions, and, perhaps, also their sizes, if necessary.

By the way, why doesn't the function end with "exit()"? That'll make it exit the Python completely; rarely a good idea.
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to