tdf#67866 sc,sd: PDF/UA export: set language in Catalog
sw already does this, and it's recommended in
https://www.w3.org/WAI/GL/WCAG20-TECHS/PDF16.html
Change-Id: I0ce36442ec1b223c40f53fac3683ad7bb0e2bc6f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143307
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index d6d8f1a..cf3ad3e3 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -2225,6 +2225,12 @@ void SAL_CALL ScModelObj::render( sal_Int32 nSelRenderer, const uno::Any& aSelec
vcl::PDFExtOutDevData* pPDFData = dynamic_cast< vcl::PDFExtOutDevData* >(pDev->GetExtOutDevData() );
if ( nRenderer == nTabStart )
{
if (pPDFData)
{
css::lang::Locale const docLocale(LanguageTag(ScGlobal::GetEditDefaultLanguage()).getLocale());
pPDFData->SetDocumentLocale(docLocale);
}
// first page of a sheet: add outline item for the sheet name
if ( pPDFData && pPDFData->GetIsExportBookmarks() )
diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx
index 0106f00..a6a4afa 100644
--- a/sd/source/ui/unoidl/unomodel.cxx
+++ b/sd/source/ui/unoidl/unomodel.cxx
@@ -1867,6 +1867,12 @@ void SAL_CALL SdXImpressDocument::render( sal_Int32 nRenderer, const uno::Any& r
!(pPDFExtOutDevData && pPDFExtOutDevData->GetIsExportHiddenSlides()) )
return;
if (pPDFExtOutDevData)
{
css::lang::Locale const docLocale(Application::GetSettings().GetLanguageTag().getLocale());
pPDFExtOutDevData->SetDocumentLocale(docLocale);
}
::sd::ClientView aView( mpDocShell, pOut );
::tools::Rectangle aVisArea( Point(), mpDoc->GetSdPage( static_cast<sal_uInt16>(nPageNumber) - 1, ePageKind )->GetSize() );
vcl::Region aRegion( aVisArea );
diff --git a/vcl/qa/cppunit/pdfexport/pdfexport.cxx b/vcl/qa/cppunit/pdfexport/pdfexport.cxx
index 962995a..1e7a678 100644
--- a/vcl/qa/cppunit/pdfexport/pdfexport.cxx
+++ b/vcl/qa/cppunit/pdfexport/pdfexport.cxx
@@ -839,6 +839,16 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testAlternativeText)
}
}
}
// tdf#67866 check that Catalog contains Lang
auto* pCatalog = aDocument.GetCatalog();
CPPUNIT_ASSERT(pCatalog);
auto* pCatalogDictionary = pCatalog->GetDictionary();
CPPUNIT_ASSERT(pCatalogDictionary);
auto pLang = dynamic_cast<vcl::filter::PDFLiteralStringElement*>(
pCatalogDictionary->LookupElement("Lang"));
CPPUNIT_ASSERT(pLang);
CPPUNIT_ASSERT_EQUAL(OString("en-US"), pLang->GetValue());
}
CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf105972)