KissPDF

Python and .py source code to PDF

Free Online Python Code to PDF Converter

Upload a .py file or paste Python source code and convert it into a clean, printable PDF. Keep syntax highlighting, indentation, comments, line numbers, and automatic page breaks—with an exact preview before downloading.

Free · no signup · no watermarkSyntax highlighting and optional line numbersExact page preview with selectable text
Python editor20 lines
Updating preview
1234567891011121314151617181920
from dataclasses import dataclass

@dataclass
class InvoiceItem:
    description: str
    quantity: int
    unit_price: float

    @property
    def total(self) -> float:
        return self.quantity * self.unit_price


items = [
    InvoiceItem("Design review", 2, 125.00),
    InvoiceItem("Implementation", 6, 95.00),
]

grand_total = sum(item.total for item in items)
print(f"Invoice total: £{grand_total:,.2f}")
Preparing PDF preview…

Readable source-code documents

Convert Python source code into a printable PDF

KissPDF converts uploaded .py files or pasted Python source code into normal PDF pages. Monospaced formatting, syntax highlighting, indentation, and comments remain readable, while the code stays selectable and searchable.

The page preview and downloaded file come from the same document snapshot. Choose the language, font size, line numbers, title, paper size, margins, and page numbers from the settings panel before exporting.

Built and technically reviewed by the KissPDF project maintainers

Three steps

How to convert Python or .py code to PDF

01

Upload or paste Python code

Open a local .py source file or replace the sample with a script, class, code example, or assignment. The language and syntax highlighting update automatically.

02

Adjust the document

Use the right sidebar to choose the output language and tune line numbers, code size, title, page format, margins, and pagination.

03

Preview and download

Inspect the actual PDF pages, zoom or move around the preview, then download the same layout as a standard PDF without opening a system print window.

Made for Python source

When a Python code PDF is useful

Python files are often shared outside an IDE—with a tutor, reviewer, client, or audit record. A paged PDF makes that source easier to reference without turning it into an editable project or a blurry screenshot.

Assignments and code handouts

Present exercises, algorithms, class examples, and worked solutions with stable line numbers that students and reviewers can cite.

Scripts and backend reviews

Share selected .py, Django, Flask, FastAPI, command-line, or automation source when the recipient needs readable code rather than a repository.

Data and research appendices

Add analysis functions, preprocessing scripts, model configuration, or reproducibility code to reports while keeping the source searchable.

Python-aware formatting

Keep Python formatting readable

Whitespace communicates structure in Python. Monospaced formatting preserves indentation and comments, while automatic page breaks carry long scripts across normal PDF pages.

Python syntax highlighting

Keywords, decorators, strings, comments, numbers, type annotations, functions, and classes receive distinct source-code styling.

Significant whitespace

Monospaced text retains indentation instead of reflowing it like prose, preserving the hierarchy of methods, loops, branches, comments, and context managers.

Automatic page breaks

Long scripts continue across printable PDF pages while remaining searchable and selectable. They are not flattened into one tall image or sent through a print dialog.

Formatting without execution

No interpreter or package installation is involved. Imports, environment variables, network calls, and application code are never run.

Common questions

Python to PDF FAQ

How do I convert a .py file to PDF?

Click Open file and choose a local .py source file, or paste the code into the editor. Choose the page options, check the exact preview, and download the PDF. The file is read locally in your browser and is not uploaded to a conversion server.

Does the converter preserve Python indentation?

Yes. Leading spaces and tabs remain part of the source text, so nested functions, classes, loops, and conditionals keep their visible structure in the PDF.

Does this tool run my Python code?

No. It formats source code only. It does not execute scripts, import packages, access a virtual environment, or include program output.

Is this a Python library for generating PDF files?

No. This converter turns Python source code itself into a readable document. If your program needs to create invoices, reports, or other PDFs at runtime, you need a Python PDF library instead.

Can I convert a Jupyter notebook to PDF?

This page accepts Python source rather than an .ipynb notebook. Copy the relevant code cells into the editor, or export the notebook as a .py file and open that source file.

Are decorators, type hints, and f-strings highlighted?

Yes. The Python language mode recognizes common Python syntax including decorators, annotations, strings, comments, numbers, keywords, and function or class definitions.

Can I remove the title or line numbers?

Yes. Both controls are available in the settings sidebar, and the page preview updates before the PDF is downloaded.

Can the PDF include Unicode characters used by my script?

Common Unicode source text can be included as selectable text. The exact visible result depends on whether the PDF font contains the required glyphs.