aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--site/user/sample/pdf.md32
-rw-r--r--tests/PDFMetadataAttributeTest.cpp17
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());