diff options
-rw-r--r-- | site/user/sample/pdf.md | 32 | ||||
-rw-r--r-- | tests/PDFMetadataAttributeTest.cpp | 17 |
2 files changed, 25 insertions, 24 deletions
diff --git a/site/user/sample/pdf.md b/site/user/sample/pdf.md index 0a2aa4d471..360fb4d023 100644 --- a/site/user/sample/pdf.md +++ b/site/user/sample/pdf.md @@ -4,15 +4,24 @@ Using Skia's PDF Backend Here is an example of using Skia's PDF backend in the recommended way: via the SkDocument and SkCanvas APIs. -<!--?prettify?--> +<!--?prettify lang=cc?--> #include "SkDocument.h" - bool WritePDF() { - SkWStream* outputStream = ....; - - SkAutoTUnref<SkDocument> pdfDocument( - SkDocument::CreatePDF(outputStream)); + bool WritePDF(SkWStream* outputStream) { + sk_sp<SkDocument> pdfDocument(SkDocument::CreatePDF(outputStream)); + typedef SkDocument::Attribute Attr; + Attr info[] = { + Attr(SkString("Title"), SkString("....")), + Attr(SkString("Author"), SkString("....")), + Attr(SkString("Subject"), SkString("....")), + Attr(SkString("Keywords"), SkString("....")), + Attr(SkString("Creator"), SkString("....")), + }; + int infoCount = sizeof(info) / sizeof(info[0]); + SkTime::DateTime now; + SkTime::GetDateTime(&now); + pdfDocument->setMetadata(info, infoCount, &now, &now); int numberOfPages = ....; for (int page = 0; page < numberOfPages; ++page) { @@ -25,16 +34,5 @@ via the SkDocument and SkCanvas APIs. pdfDocument->endPage(); } - - SkTArray<SkDocument::Attribute> info; - info.emplace_back(SkString("Title"), SkString("....")); - info.emplace_back(SkString("Author"), SkString("....")); - info.emplace_back(SkString("Subject"), SkString("....")); - info.emplace_back(SkString("Keywords"), SkString("....")); - info.emplace_back(SkString("Creator"), SkString("....")); - SkTime::DateTime now; - SkTime::GetDateTime(&now); - pdfDocument->setMetadata(info, &now, &now); - return pdfDocument->close(); } diff --git a/tests/PDFMetadataAttributeTest.cpp b/tests/PDFMetadataAttributeTest.cpp index e436ee29ef..bfc2b41fa0 100644 --- a/tests/PDFMetadataAttributeTest.cpp +++ b/tests/PDFMetadataAttributeTest.cpp @@ -13,15 +13,18 @@ DEF_TEST(SkPDF_MetadataAttribute, r) { REQUIRE_PDF_DOCUMENT(SkPDF_MetadataAttribute, r); SkDynamicMemoryWStream pdf; SkAutoTUnref<SkDocument> doc(SkDocument::CreatePDF(&pdf)); - SkTArray<SkDocument::Attribute> info; - info.emplace_back(SkString("Title"), SkString("A1")); - info.emplace_back(SkString("Author"), SkString("A2")); - info.emplace_back(SkString("Subject"), SkString("A3")); - info.emplace_back(SkString("Keywords"), SkString("A4")); - info.emplace_back(SkString("Creator"), SkString("A5")); + typedef SkDocument::Attribute Attr; + Attr info[] = { + Attr(SkString("Title"), SkString("A1")), + Attr(SkString("Author"), SkString("A2")), + Attr(SkString("Subject"), SkString("A3")), + Attr(SkString("Keywords"), SkString("A4")), + Attr(SkString("Creator"), SkString("A5")), + }; + int infoCount = sizeof(info) / sizeof(info[0]); SkTime::DateTime now; SkTime::GetDateTime(&now); - doc->setMetadata(&info[0], info.count(), &now, &now); + doc->setMetadata(&info[0], infoCount, &now, &now); doc->beginPage(612.0f, 792.0f); doc->close(); SkAutoTUnref<SkData> data(pdf.copyToData()); |