diff --git a/db.sqlite3 b/db.sqlite3
index 19c9391..645a3ed 100644
Binary files a/db.sqlite3 and b/db.sqlite3 differ
diff --git a/requirements.txt b/requirements.txt
index f98624d..d1cba28 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -92,4 +92,5 @@ uritemplate==4.1.1
 urllib3==2.2.3
 virtualenv==20.26.6
 webencodings==0.5.1
+weasyprint==63.0
 whitenoise==6.7.0
diff --git a/resume_cv/urls.py b/resume_cv/urls.py
index b5cf669..0af43d2 100644
--- a/resume_cv/urls.py
+++ b/resume_cv/urls.py
@@ -5,6 +5,7 @@
     ResumeCVCreateView,
     resume_builder,
     UserResumeListView,
+    download_resume,
 )
 
 app_name = "resume_cv"
@@ -14,4 +15,5 @@
     path("resume-cv/create", ResumeCVCreateView.as_view(), name="create"),
     path("templates/builder/<code>", resume_builder, name="builder"),
     path("resumes/", UserResumeListView.as_view(), name="resumes"),
+    path("download-as-pdf/<int:id>/", download_resume, name="export.pdf"),
 ]
diff --git a/resume_cv/views.py b/resume_cv/views.py
index 3120c23..e4aac09 100644
--- a/resume_cv/views.py
+++ b/resume_cv/views.py
@@ -1,13 +1,16 @@
 import json
 
+from django.contrib.auth.decorators import login_required
 from django.contrib.auth.mixins import LoginRequiredMixin
 from django.http import HttpResponse, JsonResponse
 from django.middleware.csrf import get_token
 from django.shortcuts import render, redirect
 from django.urls import reverse_lazy
 from django.views import View
-from django.views.generic import ListView, CreateView
+from django.views.generic import ListView
+from weasyprint import HTML
 
+from jobsapp.decorators import user_is_employee
 # Create your views here.
 from jobsapp.mixins import EmployeeRequiredMixin
 from resume_cv.forms import ResumeCvForm
@@ -113,3 +116,15 @@ class UserResumeListView(ListView):
 
     def get_queryset(self):
         return self.model.objects.filter(user_id=self.request.user.id).order_by("-id")
+
+
+@login_required
+@user_is_employee
+def download_resume(request, id):
+    resume = ResumeCv.objects.get(id=id)
+    if resume:
+        pdf_file = HTML(string=resume.content).write_pdf()
+        response = HttpResponse(pdf_file, content_type="application/pdf")
+        response["Content-Disposition"] = f'attachment; filename="{resume.name}.pdf"'
+        return response
+    return redirect("resume_cv:resumes")
diff --git a/templates/resumes/builder.html b/templates/resumes/builder.html
index edcf068..cf485ab 100644
--- a/templates/resumes/builder.html
+++ b/templates/resumes/builder.html
@@ -76,7 +76,7 @@ <h4><b>{{ template.name }}</b></h4>
     let urlStore = '{% url 'resume-cv.update.builder' resume.id %}';
     let urlLoad = '{% url 'resume-cv.load.builder' resume.id %}';
     let back_button_url = "{% url 'resume_cv:templates' %}";
-    let exportPDF_url = "";
+    let exportPDF_url = '{% url 'resume_cv:export.pdf' resume.id %}';
 
     let images_url = ['{% static 'img/1875187.jpg' %}'];
     let all_fonts = ['Arial', 'Verdana', 'Helvetica', 'Tahoma', 'Trebuchet MS', 'Times New Roman', 'Georgia', 'Garamond', 'Courier New', 'Brush Script MT'];