diff --git Scribus/scribus/plugins/scriptplugin/cmddoc.cpp Scribus/scribus/plugins/scriptplugin/cmddoc.cpp
index 2af149c1..452b5b0f 100644
--- Scribus/scribus/plugins/scriptplugin/cmddoc.cpp
+++ Scribus/scribus/plugins/scriptplugin/cmddoc.cpp
@@ -350,6 +350,43 @@ PyObject *scribus_getunit(PyObject* /* self */)
 	return PyLong_FromLong(static_cast<long>(ScCore->primaryMainWindow()->doc->unitIndex()));
 }
 
+PyObject *scribus_pointstodocunit(PyObject* /* self */, PyObject *args)
+{
+    double points;
+    if (!PyArg_ParseTuple(args, "d", &points))
+        return nullptr;
+    if (!checkHaveDocument())
+        return nullptr;
+
+    return Py_BuildValue("d", PointToValue(points));
+}
+
+PyObject *scribus_docunittopoints(PyObject* /* self */, PyObject *args)
+{
+    double value;
+    if (!PyArg_ParseTuple(args, "d", &value))
+        return nullptr;
+    if (!checkHaveDocument())
+        return nullptr;
+
+    return Py_BuildValue("d", ValueToPoint(value));
+}
+
+PyObject *scribus_stringvaluetopoints(PyObject* /* self */, PyObject *args)
+{
+    PyESString strValue;
+    if (!PyArg_ParseTuple(args, "es", "utf-8", strValue.ptr()))
+        return nullptr;
+
+    QString qv = QString::fromUtf8(strValue.c_str());
+
+    int uIdx = unitIndexFromString(qv);
+    double value = unitValueFromString(qv);
+    double points = value / unitGetRatioFromIndex(uIdx);
+
+    return Py_BuildValue("d", points);
+}
+
 PyObject *scribus_loadstylesfromfile(PyObject* /* self */, PyObject *args)
 {
 	PyESString fileName;
diff --git Scribus/scribus/plugins/scriptplugin/cmddoc.h Scribus/scribus/plugins/scriptplugin/cmddoc.h
index 2fda991d..8a01a35e 100644
--- Scribus/scribus/plugins/scriptplugin/cmddoc.h
+++ Scribus/scribus/plugins/scriptplugin/cmddoc.h
@@ -268,7 +268,7 @@ defined as constants UNIT_<type>.\n\
 \n\
 May raise ValueError if an invalid unit is passed.\n\
 "));
-/** Changes unit scale. */
+/** Changes the document unit. */
 PyObject *scribus_setunit(PyObject * /*self*/, PyObject* args);
 
 /*! docstring */
@@ -279,9 +279,36 @@ Returns the measurement units of the document. The returned value will be one\n\
 of the UNIT_* constants:\n\
 UNIT_INCHES, UNIT_MILLIMETERS, UNIT_PICAS, UNIT_POINTS.\n\
 "));
-/** Returns actual unit scale. */
+/** Returns actual document unit. */
 PyObject *scribus_getunit(PyObject * /*self*/);
 
+/*! docstring */
+PyDoc_STRVAR(scribus_pointstodocunit__doc__,
+QT_TR_NOOP("pointsToDocUnit(points) -> value\n\
+\n\
+Returns a value in the measurement units of the document converted from points.\n\
+"));
+/** Converts from points to the document unit. */
+PyObject *scribus_pointstodocunit(PyObject * /*self*/, PyObject* args);
+
+/*! docstring */
+PyDoc_STRVAR(scribus_docunittopoints__doc__,
+QT_TR_NOOP("docUnitToPoints(value) -> points\n\
+\n\
+Returns a value in points converted from the measurement units of the document.\n\
+"));
+/** Converts from the document unit to points. */
+PyObject *scribus_docunittopoints(PyObject * /*self*/, PyObject* args);
+
+/*! docstring */
+PyDoc_STRVAR(scribus_stringvaluetopoints__doc__,
+QT_TR_NOOP("stringValueToPoints(\"10mm\") -> points\n\
+\n\
+Returns a value in points converted from a string value (\"5mm\", \"2in\" et.c.).\n\
+"));
+/** Converts a string value ("5mm", "2in" et.c.) to points. */
+PyObject *scribus_stringvaluetopoints(PyObject * /*self*/, PyObject *args);
+
 /*! docstring */
 PyDoc_STRVAR(scribus_loadstylesfromfile__doc__,
 QT_TR_NOOP("loadStylesFromFile(\"filename\")\n\
diff --git Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp
index 0162e3b9..49c00b15 100644
--- Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp
+++ Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp
@@ -432,6 +432,9 @@ PyMethodDef scribus_methods[] = {
 	{ "getTextShade", scribus_gettextshade, METH_VARARGS, tr(scribus_gettextshade__doc__)},
 	{ "getTextVerticalAlignment", scribus_gettextverticalalignment, METH_VARARGS, tr(scribus_gettextverticalalignment__doc__)},
 	{ "getUnit", (PyCFunction) scribus_getunit, METH_NOARGS, tr(scribus_getunit__doc__)},
+	{ "pointsToDocUnit", scribus_pointstodocunit, METH_VARARGS, tr(scribus_pointstodocunit__doc__)},
+	{ "docUnitToPoints", scribus_docunittopoints, METH_VARARGS, tr(scribus_docunittopoints__doc__)},
+	{ "stringValueToPoints", scribus_stringvaluetopoints, METH_VARARGS, tr(scribus_stringvaluetopoints__doc__)},
 	{ "getVGuides", (PyCFunction) scribus_getVguides, METH_NOARGS, tr(scribus_getVguides__doc__)},
 	{ "getXFontNames", (PyCFunction) scribus_xfontnames, METH_NOARGS, tr(scribus_xfontnames__doc__)},
 	{ "gotoPage", scribus_gotopage, METH_VARARGS, tr(scribus_gotopage__doc__)},
