SkDocument/PDF: new API

has a pdf/a switch.
sets metadata in factory.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1916093002

Review URL: https://codereview.chromium.org/1916093002
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp
index 18ac6b4..e801829 100644
--- a/dm/DMSrcSink.cpp
+++ b/dm/DMSrcSink.cpp
@@ -1115,16 +1115,15 @@
 }
 
 Error PDFSink::draw(const Src& src, SkBitmap*, SkWStream* dst, SkString*) const {
-    SkAutoTUnref<SkDocument> doc(SkDocument::CreatePDF(dst));
+    SkDocument::PDFMetadata metadata;
+    metadata.fTitle = src.name();
+    metadata.fSubject = "rendering correctness test";
+    metadata.fCreator = "Skia/DM";
+    sk_sp<SkDocument> doc = SkDocument::MakePDF(dst, SK_ScalarDefaultRasterDPI,
+                                                metadata, nullptr, fPDFA);
     if (!doc) {
-        return "SkDocument::CreatePDF() returned nullptr";
+        return "SkDocument::MakePDF() returned nullptr";
     }
-    SkTArray<SkDocument::Attribute> info;
-    info.emplace_back(SkString("Title"), src.name());
-    info.emplace_back(SkString("Subject"),
-                      SkString("rendering correctness test"));
-    info.emplace_back(SkString("Creator"), SkString("Skia/DM"));
-    doc->setMetadata(&info[0], info.count(), nullptr, nullptr);
     return draw_skdocument(src, doc.get(), dst);
 }
 
@@ -1133,9 +1132,9 @@
 XPSSink::XPSSink() {}
 
 Error XPSSink::draw(const Src& src, SkBitmap*, SkWStream* dst, SkString*) const {
-    SkAutoTUnref<SkDocument> doc(SkDocument::CreateXPS(dst));
+    sk_sp<SkDocument> doc(SkDocument::MakeXPS(dst));
     if (!doc) {
-        return "SkDocument::CreateXPS() returned nullptr";
+        return "SkDocument::MakeXPS() returned nullptr";
     }
     return draw_skdocument(src, doc.get(), dst);
 }