Table of Contents
Install with Pip
pip install Spire.PDF
Related Links
Converting an image to PDF is a convenient and efficient way to transform a visual file into a portable, universally readable format. Whether you're working with a scanned document, a photo, or a digital image, converting it to PDF provides numerous benefits. It maintains the image's original quality and guarantees compatibility across diverse devices and operating systems. Moreover, converting images to PDF allows for easy sharing, printing, and archiving, making it a versatile solution for various professional, educational, and personal purposes. This article provides several examples showing you how to convert images to PDF using Python.
- Convert an Image to a PDF Document in Python
- Convert Multiple Images to a PDF Document in python
- Create a PDF from Multiple Images Customizing Page Margins in Python
- Create a PDF with Several Images per Page in Python
PDF Converter API for Python
If you want to turn image files into PDF format in a Python application, Spire.PDF for Python can help with this. It enables you to build a PDF document with custom page settings (size and margins), add one or more images to every single page, and save the final document as a PDF file. Various image forms are supported which include PNG, JPEG, BMP, and GIF images.
In addition to the conversion from images to PDF, this library supports converting PDF to Word, PDF to Excel, PDF to HTML, PDF to PDF/A with high quality and precision. As an advanced Python PDF library, it also provides a rich API for developers to customize the conversion options to meet a variety of conversion requirements.
The library can be installed by running the following pip command.
pip install Spire.PDF
Steps to Convert an Image to PDF in Python
- Initialize PdfDocument class.
- Load an image file from path using FromFile method.
- Add a page with the specified size to the document.
- Draw the image on the page at the specified location using DrawImage method.
- Save the document to a PDF file using SaveToFile method.
Convert an Image to a PDF Document in Python
This code example converts an image file to a PDF document using the Spire.PDF for Python library by creating a blank document, adding a page with the same dimensions as the image, and drawing the image onto the page.
- Python
from spire.pdf.common import * from spire.pdf import * # Create a PdfDocument object doc = PdfDocument() # Set the page margins to 0 doc.PageSettings.SetMargins(0.0) # Load a particular image image = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\Images\\img-1.jpg") # Get the image width and height width = image.PhysicalDimension.Width height = image.PhysicalDimension.Height # Add a page that has the same size as the image page = doc.Pages.Add(SizeF(width, height)) # Draw image at (0, 0) of the page page.Canvas.DrawImage(image, 0.0, 0.0, width, height) # Save to file doc.SaveToFile("output/ImageToPdf.pdf") doc.Dispose()
Convert Multiple Images to a PDF Document in python
This example illustrates how to convert a collection of images into a PDF document using Spire.PDF for Python. The following code snippet reads images from a specified folder, creates a PDF document, adds each image to a separate page in the PDF, and saves the resulting PDF file.
- Python
from spire.pdf.common import * from spire.pdf import * import os # Create a PdfDocument object doc = PdfDocument() # Set the page margins to 0 doc.PageSettings.SetMargins(0.0) # Get the folder where the images are stored path = "C:\\Users\\Administrator\\Desktop\\Images\\" files = os.listdir(path) # Iterate through the files in the folder for root, dirs, files in os.walk(path): for file in files: # Load a particular image image = PdfImage.FromFile(os.path.join(root, file)) # Get the image width and height width = image.PhysicalDimension.Width height = image.PhysicalDimension.Height # Add a page that has the same size as the image page = doc.Pages.Add(SizeF(width, height)) # Draw image at (0, 0) of the page page.Canvas.DrawImage(image, 0.0, 0.0, width, height) # Save to file doc.SaveToFile('output/ImagesToPdf.pdf') doc.Dispose()
Create a PDF from Multiple Images Customizing Page Margins in Python
This code example creates a PDF document and populates it with images from a specified folder, adjusts the page margins and saves the resulting document to a file.
- Python
from spire.pdf.common import * from spire.pdf import * import os # Create a PdfDocument object doc = PdfDocument() # Set the left, top, right, bottom page margin doc.PageSettings.SetMargins(30.0, 30.0, 30.0, 30.0) # Get the folder where the images are stored path = "C:\\Users\\Administrator\\Desktop\\Images\\" files = os.listdir(path) # Iterate through the files in the folder for root, dirs, files in os.walk(path): for file in files: # Load a particular image image = PdfImage.FromFile(os.path.join(root, file)) # Get the image width and height width = image.PhysicalDimension.Width height = image.PhysicalDimension.Height # Specify page size size = SizeF(width + doc.PageSettings.Margins.Left + doc.PageSettings.Margins.Right, height + doc.PageSettings.Margins.Top+ doc.PageSettings.Margins.Bottom) # Add a page with the specified size page = doc.Pages.Add(size) # Draw image on the page at (0, 0) page.Canvas.DrawImage(image, 0.0, 0.0, width, height) # Save to file doc.SaveToFile('output/CustomizeMargins.pdf') doc.Dispose()
Create a PDF with Several Images per Page in Python
This code demonstrates how to use the Spire.PDF library in Python to create a PDF document with two images per page. The images in this example are the same size, if your image size is not consistent, then you need to adjust the code to achieve a desired result.
- Python
from spire.pdf.common import * from spire.pdf import * import os # Create a PdfDocument object doc = PdfDocument() # Set the left, top, right, bottom page margins doc.PageSettings.SetMargins(15.0, 15.0, 15.0, 15.0) # Get the folder where the images are stored path = "C:\\Users\\Administrator\\Desktop\\Images\\" files = os.listdir(path) # Iterate through the files in the folder for root, dirs, files in os.walk(path): for i in range(len(files)): # Load a particular image image = PdfImage.FromFile(os.path.join(root, files[i])) # Get the image width and height width = image.PhysicalDimension.Width height = image.PhysicalDimension.Height # Specify page size size = SizeF(width + doc.PageSettings.Margins.Left + doc.PageSettings.Margins.Right, height*2 + doc.PageSettings.Margins.Top+ doc.PageSettings.Margins.Bottom + 15.0) if i % 2 == 0: # Add a page with the specified size page = doc.Pages.Add(size) # Draw first image on the page at (0, 0) page.Canvas.DrawImage(image, 0.0, 0.0, width, height) else : # Draw second image on the page at (0, height + 15) page.Canvas.DrawImage(image, 0.0, height + 15.0, width, height) # Save to file doc.SaveToFile('output/SeveralImagesPerPage.pdf') doc.Dispose()
Conclusion
In this blog post, we explored how to use Spire.PDF for python to create PDF documents from images, containing one or more images per page. Additionally, we demonstrated how to customize the PDF page size and the margins around the images. For more tutorials, please check out our online documentation. If you have any questions, feel free to contact us by email or on the forum.