PdfAValidatorApi wraps calls to VeraPdf in a .net standard assembly and as WebApi. Access VeraPdf from your unit tests or integrate it into your micro architecture. Works on Windows, Linux and MacOs.
Sample - e.g. use it in your unit test to check compliance of some pdf:
publicstaticasyncTaskShouldDetectCompliantPdfA(){usingvarpdfAValidator=newPdfAValidator();varresult=awaitpdfAValidator.ValidateAsync("./TestPdfFiles/FromLibreOffice.pdf");Assert.True(result);}Sample - e.g. use it in your unit test to check the used sub standard of some pdf:
publicstaticasyncTaskShouldGetDetailedReportFromPdfA(){usingvarpdfAValidator=newPdfAValidator();varresult=awaitpdfAValidator.ValidateWithDetailedReportAsync("./TestPdfFiles/FromLibreOffice.pdf");Assert.True(result.Jobs.Job.ValidationReport.IsCompliant);Assert.True(result.Jobs.Job.ValidationReport.ProfileName=="PDF/A-1A validation profile");}Sample - e.g. use it in your unit test to check PDF meta data:
publicstaticasyncTaskShouldGetFeaturesReportWhenAskingForIt(){usingvarpdfAValidator=newPdfAValidator();varresult=awaitpdfAValidator.ValidateWithDetailedReportAsync("./TestPdfFiles/FromLibreOffice.pdf","--extract informationDict");varproducerEntry=result.Jobs.Job.FeaturesReport.InformationDict.Entries.Single(e =>e.Key=="Producer");Assert.Equal("LibreOffice 6.1",producerEntry.Value);}Give https://pdfavalidator.azurewebsites.net a try, but don't be disappointed if it is off-line. The demo azure account is running on limited budget.
Everything comes with the nuget package
Current PdfAValidatorApi depends on openjdk-11-jre and some .net version.
sudo apt install openjdk-11-jre
sudo update-alternatives --config javasudo apt install dotnet6