diff --git a/src/UglyToad.PdfPig.Tests/Writer/PdfDocumentBuilderTests.cs b/src/UglyToad.PdfPig.Tests/Writer/PdfDocumentBuilderTests.cs index 83d7fcb2..5fe76ae3 100644 --- a/src/UglyToad.PdfPig.Tests/Writer/PdfDocumentBuilderTests.cs +++ b/src/UglyToad.PdfPig.Tests/Writer/PdfDocumentBuilderTests.cs @@ -636,6 +636,8 @@ [InlineData(PdfAStandard.A1A)] [InlineData(PdfAStandard.A2B)] [InlineData(PdfAStandard.A2A)] + [InlineData(PdfAStandard.A3B)] + [InlineData(PdfAStandard.A3A)] public void CanGeneratePdfAFile(PdfAStandard standard) { var builder = new PdfDocumentBuilder diff --git a/src/UglyToad.PdfPig/Writer/PdfAStandard.cs b/src/UglyToad.PdfPig/Writer/PdfAStandard.cs index 50d69a3e..b41984ce 100644 --- a/src/UglyToad.PdfPig/Writer/PdfAStandard.cs +++ b/src/UglyToad.PdfPig/Writer/PdfAStandard.cs @@ -24,6 +24,14 @@ /// /// Compliance with PDF/A2-A. Level A (accessible) conformance are PDF/A2-B standards in addition to features intended to improve a document's accessibility. /// - A2A = 4 + A2A = 4, + /// + /// Compliance with PDF/A3-B. Level B (basic) conformance are PDF/A2-B standards in addition to support for embedded files + /// + A3B = 5, + /// + /// Compliance with PDF/A3-A. Level A (accessible) conformance are PDF/A3-B standards in addition to features intended to improve a document's accessibility. + /// + A3A = 6 } } \ No newline at end of file diff --git a/src/UglyToad.PdfPig/Writer/PdfDocumentBuilder.cs b/src/UglyToad.PdfPig/Writer/PdfDocumentBuilder.cs index a13ea14d..ed87db83 100644 --- a/src/UglyToad.PdfPig/Writer/PdfDocumentBuilder.cs +++ b/src/UglyToad.PdfPig/Writer/PdfDocumentBuilder.cs @@ -640,6 +640,11 @@ namespace UglyToad.PdfPig.Writer case PdfAStandard.A2A: PdfA1ARuleBuilder.Obey(catalogDictionary); break; + case PdfAStandard.A3B: + break; + case PdfAStandard.A3A: + PdfA1ARuleBuilder.Obey(catalogDictionary); + break; } } diff --git a/src/UglyToad.PdfPig/Writer/Xmp/XmpWriter.cs b/src/UglyToad.PdfPig/Writer/Xmp/XmpWriter.cs index 84a924b9..a61ab83d 100644 --- a/src/UglyToad.PdfPig/Writer/Xmp/XmpWriter.cs +++ b/src/UglyToad.PdfPig/Writer/Xmp/XmpWriter.cs @@ -147,6 +147,14 @@ namespace UglyToad.PdfPig.Writer.Xmp part = 2; conformance = "A"; break; + case PdfAStandard.A3A: + part = 3; + conformance = "A"; + break; + case PdfAStandard.A3B: + part = 3; + conformance = "B"; + break; default: throw new ArgumentOutOfRangeException(nameof(standard), standard, null); }