In [5]:
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.
In [6]:
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.
In [7]:
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.
In [8]:
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.