pip install reportlab
Requirement already satisfied: reportlab in c:\users\user\anaconda3\lib\site-packages (4.0.0) Requirement already satisfied: pillow>=9.0.0 in c:\users\user\anaconda3\lib\site-packages (from reportlab) (9.0.1) Requirement already satisfied: freetype-py<2.4,>=2.3.0 in c:\users\user\anaconda3\lib\site-packages (from reportlab) (2.3.0) Requirement already satisfied: rlPyCairo<1,>=0.2.0 in c:\users\user\anaconda3\lib\site-packages (from reportlab) (0.2.0) Requirement already satisfied: pycairo>=1.20.0 in c:\users\user\anaconda3\lib\site-packages (from rlPyCairo<1,>=0.2.0->reportlab) (1.23.0) Note: you may need to restart the kernel to use updated packages.
pip install img2pdf
Requirement already satisfied: img2pdf in c:\users\user\anaconda3\lib\site-packages (0.4.4) Requirement already satisfied: pikepdf in c:\users\user\anaconda3\lib\site-packages (from img2pdf) (7.2.0) Requirement already satisfied: Pillow in c:\users\user\anaconda3\lib\site-packages (from img2pdf) (9.0.1) Requirement already satisfied: lxml>=4.8 in c:\users\user\anaconda3\lib\site-packages (from pikepdf->img2pdf) (4.8.0) Requirement already satisfied: deprecation in c:\users\user\anaconda3\lib\site-packages (from pikepdf->img2pdf) (2.1.0) Requirement already satisfied: packaging in c:\users\user\anaconda3\lib\site-packages (from pikepdf->img2pdf) (21.3) Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in c:\users\user\anaconda3\lib\site-packages (from packaging->pikepdf->img2pdf) (3.0.4) Note: you may need to restart the kernel to use updated packages.
pip install docx2pdf
Requirement already satisfied: docx2pdf in c:\users\user\anaconda3\lib\site-packages (0.1.8) Requirement already satisfied: tqdm>=4.41.0 in c:\users\user\anaconda3\lib\site-packages (from docx2pdf) (4.64.0) Requirement already satisfied: pywin32>=227 in c:\users\user\anaconda3\lib\site-packages (from docx2pdf) (302) Requirement already satisfied: colorama in c:\users\user\anaconda3\lib\site-packages (from tqdm>=4.41.0->docx2pdf) (0.4.4) Note: you may need to restart the kernel to use updated packages.
import os
import img2pdf
from docx2pdf import convert
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
def convert_to_pdf(input_file, output_file):
if input_file.endswith('.jpg'):
# Convert JPG to PDF
with open(output_file, "wb") as pdf_file, open(input_file, "rb") as jpg_file:
pdf_file.write(img2pdf.convert(jpg_file))
print("JPG to PDF conversion completed.")
elif input_file.endswith('.doc') or input_file.endswith('.docx'):
# Convert DOC/DOCX to PDF
convert(input_file, output_file)
print("DOC/DOCX to PDF conversion completed.")
elif input_file.endswith('.txt'):
# Convert TXT to PDF
c = canvas.Canvas(output_file, pagesize=letter)
with open(input_file, 'r') as file:
txt_content = file.read()
c.setFont("Helvetica", 12)
c.drawString(100, 700, txt_content)
c.save()
print("TXT to PDF conversion completed.")
else:
print("Unsupported file format.")
# Example usage
input_file = r'C:\Users\user\Python Pdf converter\Sample doc.docx' # Provide the input file path here
output_file = r'C:\Users\user\Python Pdf converter\Sample pdf.pdf' # Provide the output file path here
convert_to_pdf(input_file, output_file)
0%| | 0/1 [00:00<?, ?it/s]
DOC/DOCX to PDF conversion completed.