diff --git a/textproc/py-xhtml2pdf/Makefile b/textproc/py-xhtml2pdf/Makefile
index 9266538d0db7..a7be02e3fb4d 100644
--- a/textproc/py-xhtml2pdf/Makefile
+++ b/textproc/py-xhtml2pdf/Makefile
@@ -1,33 +1,33 @@
PORTNAME= xhtml2pdf
-PORTVERSION= 0.2.16
+PORTVERSION= 0.2.17
CATEGORIES= textproc python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= PDF generator using HTML and CSS
WWW= https://xhtml2pdf.readthedocs.io/en/latest/ \
https://github.com/xhtml2pdf/xhtml2pdf
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}arabic-reshaper>=3.0.0:textproc/py-arabic-reshaper@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}html5lib>=1.1:www/py-html5lib@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pillow>=8.1.1:graphics/py-pillow@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pyhanko>=0.12.1:security/py-pyhanko@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pyhanko-certvalidator>=0.19.5:security/py-pyhanko-certvalidator@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pypdf>=3.1.0:print/py-pypdf@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}python-bidi>=0.4.2:textproc/py-python-bidi@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}reportlab>=4.0.4<5:print/py-reportlab@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}svglib>=1.2.1:converters/py-svglib@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}nose>=1.0:devel/py-nose@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist concurrent pep517
NO_ARCH= yes
.include
diff --git a/textproc/py-xhtml2pdf/distinfo b/textproc/py-xhtml2pdf/distinfo
index 3ed0c33e03d5..87f6ebdffc50 100644
--- a/textproc/py-xhtml2pdf/distinfo
+++ b/textproc/py-xhtml2pdf/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1718580146
-SHA256 (xhtml2pdf-0.2.16.tar.gz) = 7391adac12afb086561667cdc8d6ef0ac4afe5097bd97383622d42b6343dee71
-SIZE (xhtml2pdf-0.2.16.tar.gz) = 138833
+TIMESTAMP = 1740836188
+SHA256 (xhtml2pdf-0.2.17.tar.gz) = 09ddbc31aa0e38a16f2f3cb73be89af5f7c968c17a564afdd685d280e39c526d
+SIZE (xhtml2pdf-0.2.17.tar.gz) = 139727
diff --git a/textproc/py-xhtml2pdf/files/patch-python-bidi b/textproc/py-xhtml2pdf/files/patch-python-bidi
new file mode 100644
index 000000000000..7c770b389421
--- /dev/null
+++ b/textproc/py-xhtml2pdf/files/patch-python-bidi
@@ -0,0 +1,24 @@
+Reference: https://github.com/xhtml2pdf/xhtml2pdf/commit/3ac6559d670736696e0a12a7e945191b7961428d
+
+--- pyproject.toml.orig 2025-02-23 23:16:52 UTC
++++ pyproject.toml
+@@ -53,7 +53,7 @@ dependencies = [
+ "pyHanko>=0.12.1",
+ "pyhanko-certvalidator>=0.19.5",
+ "pypdf>=3.1.0",
+- "python-bidi>=0.5.0",
++ "python-bidi>=0.4.2",
+ "reportlab>=4.0.4,<5",
+ "svglib>=1.2.1"
+ ]
+--- xhtml2pdf/util.py.orig 2025-02-23 22:08:13 UTC
++++ xhtml2pdf/util.py
+@@ -22,7 +22,7 @@ import reportlab.pdfbase._cidfontdata
+ import arabic_reshaper
+ import reportlab
+ import reportlab.pdfbase._cidfontdata
+-from bidi import get_display
++from bidi.algorithm import get_display
+ from reportlab.lib.colors import Color, toColor
+ from reportlab.lib.enums import TA_CENTER, TA_JUSTIFY, TA_LEFT, TA_RIGHT
+ from reportlab.lib.units import cm, inch