diff -Nurpd a/scribus/pdflib_core.cpp b/scribus/pdflib_core.cpp
--- a/scribus/pdflib_core.cpp	2023-12-31 16:58:30.000000000 +0100
+++ b/scribus/pdflib_core.cpp	2024-01-02 18:19:37.347046496 +0100
@@ -1020,8 +1020,8 @@ void PDFLibCore::PDF_Begin_Catalog()
 //	Datum += tmp;
 //	Datum += "Z";
 
-	// only include XMP to PDF/X-4 at the moment, could easily be extended to include it to any PDF
-	if (Options.Version == PDFVersion::PDF_X4)
+	// only include XMP to PDF 1.6 and PDF/X-4 at the moment, could easily be extended to include it to any PDF
+	if (Options.Version >= PDFVersion::PDF_16)
 		generateXMP(dt.toString("yyyy-MM-ddThh:mm:ssZ"));
 
 /* The following code makes the resulting PDF "Reader enabled" in Acrobat Reader 8
@@ -11721,34 +11721,127 @@ void PDFLibCore::generateXMP(const QStri
 	QDomElement descDC = desc.cloneNode().toElement();
 	rdf.appendChild(descDC);
 	QString dcNS = "http://purl.org/dc/elements/1.1/";
+
 	descDC.setAttributeNS(dcNS, "dc:format", "application/pdf");
+
+	if (!doc.documentInfo().cover().isEmpty())
+		descDC.setAttributeNS(dcNS, "dc:coverage", doc.documentInfo().cover());
+
+	//QString xmlLang = "x-default";
+	if (!doc.documentInfo().langInfo().isEmpty())
+		{
+		QDomElement language = xmpDoc.createElement("dc:language");
+		descDC.appendChild(language);
+		QDomElement bag1 = xmpDoc.createElement("rdf:Bag");
+		language.appendChild(bag1);
+		QDomElement li1 = xmpDoc.createElement("rdf:li");
+		bag1.appendChild(li1);
+		li1.appendChild(xmpDoc.createTextNode(doc.documentInfo().langInfo()));
+		//xmlLang = doc.documentInfo().langInfo();
+        }
+
 	QDomElement title = xmpDoc.createElement("dc:title");
 	descDC.appendChild(title);
-	QDomElement alt1 = xmpDoc.createElement("rdf:Alt");
-	title.appendChild(alt1);
-	QDomElement li1 = xmpDoc.createElement("rdf:li");
-	li1.setAttribute("xml:lang", "x-default");
-	alt1.appendChild(li1);
+	QDomElement alt2 = xmpDoc.createElement("rdf:Alt");
+	title.appendChild(alt2);
+	QDomElement li2 = xmpDoc.createElement("rdf:li");
+	li2.setAttribute("xml:lang", "x-default");
+	alt2.appendChild(li2);
 	QString docTitle = doc.documentInfo().title();
 	if ((PDF_IsPDFX()) && (docTitle.isEmpty()))
 		docTitle = doc.documentFileName();
-	li1.appendChild(xmpDoc.createTextNode(docTitle));
+	li2.appendChild(xmpDoc.createTextNode(docTitle));
+
+	if (!doc.documentInfo().publisher().isEmpty())
+	{
+		QDomElement publisher = xmpDoc.createElement("dc:publisher");
+		descDC.appendChild(publisher);
+		QDomElement bag3 = xmpDoc.createElement("rdf:Bag");
+		publisher.appendChild(bag3);
+		QDomElement li3 = xmpDoc.createElement("rdf:li");
+		bag3.appendChild(li3);
+		li3.appendChild(xmpDoc.createTextNode(doc.documentInfo().publisher()));
+	}
+
 	QDomElement creator = xmpDoc.createElement("dc:creator");
 	descDC.appendChild(creator);
-	QDomElement seq = xmpDoc.createElement("rdf:Seq");
-	creator.appendChild(seq);
-	QDomElement li2 = xmpDoc.createElement("rdf:li");
-	seq.appendChild(li2);
-	li2.appendChild(xmpDoc.createTextNode(doc.documentInfo().author()));
+	QDomElement seq4 = xmpDoc.createElement("rdf:Seq");
+	creator.appendChild(seq4);
+	QDomElement li4 = xmpDoc.createElement("rdf:li");
+	seq4.appendChild(li4);
+	li4.appendChild(xmpDoc.createTextNode(doc.documentInfo().author()));
+
+	if (!doc.documentInfo().contrib().isEmpty())
+	{
+		QDomElement contributor = xmpDoc.createElement("dc:contributor");
+		descDC.appendChild(contributor);
+		QDomElement bag5 = xmpDoc.createElement("rdf:Bag");
+		contributor.appendChild(bag5);
+		QDomElement li5 = xmpDoc.createElement("rdf:li");
+		bag5.appendChild(li5);
+		li5.appendChild(xmpDoc.createTextNode(doc.documentInfo().contrib()));
+	}
+
 	// Subject's entry in Document Info dictionary is actually dc:description in XMP, not dc:subject.
 	QDomElement description = xmpDoc.createElement("dc:description");
 	descDC.appendChild(description);
-	QDomElement alt2 = xmpDoc.createElement("rdf:Alt");
-	description.appendChild(alt2);
-	QDomElement li3 = xmpDoc.createElement("rdf:li");
-	li3.setAttribute("xml:lang", "x-default");
-	alt2.appendChild(li3);
-	li3.appendChild(xmpDoc.createTextNode(doc.documentInfo().subject()));
+	QDomElement alt6 = xmpDoc.createElement("rdf:Alt");
+	description.appendChild(alt6);
+	QDomElement li6 = xmpDoc.createElement("rdf:li");
+	li6.setAttribute("xml:lang", "x-default");
+	alt6.appendChild(li6);
+	li6.appendChild(xmpDoc.createTextNode(doc.documentInfo().subject()));
+
+	if (!doc.documentInfo().type().isEmpty())
+	{
+		QDomElement type = xmpDoc.createElement("dc:type");
+		descDC.appendChild(type);
+		QDomElement bag7 = xmpDoc.createElement("rdf:Bag");
+		type.appendChild(bag7);
+		QDomElement li7 = xmpDoc.createElement("rdf:li");
+		bag7.appendChild(li7);
+		li7.appendChild(xmpDoc.createTextNode(doc.documentInfo().type()));
+	}
+
+	if (!doc.documentInfo().rights().isEmpty())
+	{
+		QDomElement rights = xmpDoc.createElement("dc:rights");
+		descDC.appendChild(rights);
+		QDomElement alt8 = xmpDoc.createElement("rdf:Alt");
+		rights.appendChild(alt8);
+		QDomElement li8 = xmpDoc.createElement("rdf:li");
+		li8.setAttribute("xml:lang", "x-default");
+		alt8.appendChild(li8);
+		li8.appendChild(xmpDoc.createTextNode(doc.documentInfo().rights()));
+	}
+
+	if (!doc.documentInfo().date().isEmpty())
+	{
+		QDomElement date = xmpDoc.createElement("dc:date");
+		descDC.appendChild(date);
+		QDomElement seq9 = xmpDoc.createElement("rdf:Seq");
+		date.appendChild(seq9);
+		QDomElement li9 = xmpDoc.createElement("rdf:li");
+		seq9.appendChild(li9);
+		li9.appendChild(xmpDoc.createTextNode(doc.documentInfo().date()));
+	}
+
+	if (!doc.documentInfo().ident().isEmpty())
+		descDC.setAttributeNS(dcNS, "dc:identifier", doc.documentInfo().ident());
+
+	if (!doc.documentInfo().source().isEmpty())
+		descDC.setAttributeNS(dcNS, "dc:source", doc.documentInfo().source());
+
+	if (!doc.documentInfo().relation().isEmpty())
+	{
+		QDomElement relation = xmpDoc.createElement("dc:relation");
+		descDC.appendChild(relation);
+		QDomElement bag10 = xmpDoc.createElement("rdf:Bag");
+		relation.appendChild(bag10);
+		QDomElement li10 = xmpDoc.createElement("rdf:li");
+		bag10.appendChild(li10);
+		li10.appendChild(xmpDoc.createTextNode(doc.documentInfo().relation()));
+	}
 
 	if (PDF_IsPDFX())
 	{
