diff --git a/package.json b/package.json
index b1f25714cfb17b7fc72dfb19d980610a005d63e1..b978f2097778fb180a74c75d4805ef6599edcbeb 100644
--- a/package.json
+++ b/package.json
@@ -15,8 +15,8 @@
     "e2equick": "node scripts/check-translations.js && ./node_modules/.bin/wdio run ./wdio.conf.ts",
     "monkeytest": "npm run ng -- e2e --dev-server-target= --suite=monkeyTest --webdriver-update=false",
     "mkdocs": "bash scripts/prepare_mkdocs.sh; cd build; python3 -m mkdocs build -f mkdocs-fr.yml && python3 -m mkdocs build -f mkdocs-en.yml && cd .. && node scripts/mkdocs-postprocess.js",
-    "mkdocs2pdf": "node scripts/extract-nghyd-version.js build/cassiopee_version.tex && python3 scripts/mkdocs2pdf.py && node scripts/mkdocs2pdf-postprocess.js",
-    "clean": "rm -rf build dist release src/date_revision.ts src/assets/docs",
+    "mkdocs2pdf": "node scripts/extract-nghyd-version.js build/cassiopee_version.tex && python3 scripts/mkdocs2pdf.py && node scripts/mkdocs2pdf-postprocess.js && bash scripts/check-pdf-docs.sh",
+    "clean": "rm -rf build dist release src/date_revision.ts src/assets/docs docs/pdf_build",
     "preprocess": "mkdir -p build; node scripts/preprocessors.js; npm run service-worker-version; bash scripts/fix-chartjs-plugin-zoom-2.0.0.sh",
     "start": "npm run preprocess && npm run mkdocs && npm run ng serve -- --host 127.0.0.1 --poll 5000",
     "build-no-pdf": "npm run preprocess && npm run mkdocs && npm run ng build -- --configuration production",
diff --git a/scripts/check-pdf-docs.sh b/scripts/check-pdf-docs.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c5b3da2ea6789d98c60c6957cdd96c079beb67cc
--- /dev/null
+++ b/scripts/check-pdf-docs.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+# check that PDF doc files are generated
+
+# error on unset variables
+set -o nounset
+
+# exit on error
+set -o errexit
+
+function check_file()
+{
+  if [[ ! -f $1 ]]; then
+    echo "$1 : missing documentation file" >&2
+    exit 1
+  fi
+}
+
+check_file dist/assets/docs/pdf/cassiopee_notice_illustree_fr.pdf
+check_file dist/assets/docs/pdf/cassiopee_doc_fr.pdf
+check_file dist/assets/docs/pdf/cassiopee_doc_en.pdf
diff --git a/scripts/mkdocs2pdf.py b/scripts/mkdocs2pdf.py
index 37deb6a8f52ef1d99b61ccf8f1b618790e3fa4a2..61e53884bdfd372c06f8b0236441b9eb64c4d446 100644
--- a/scripts/mkdocs2pdf.py
+++ b/scripts/mkdocs2pdf.py
@@ -56,6 +56,10 @@ def createEmptyDir(path):
         shutil.rmtree(path)
     os.makedirs(path)
 
+def createDir(path):
+    if not os.path.exists(path):
+        os.makedirs(path)
+
 # Reads an MkDocs configuration file
 def readConfig(sYAML):
     f = open(sYAML, 'r')
@@ -210,7 +214,7 @@ def buildDocForLang(lang):
     # Prepare temporary build directory
     createEmptyDir(pdfBuildDir)
     # Prepare output directory
-    createEmptyDir(outputDir)
+    createDir(outputDir)
 
     # Read config
     yamlPath = 'mkdocs/mkdocs-' + lang + '.yml'