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);
}