From 0aeeb333aba5c8cc43fe0b9b8a8469f81d9cde7a Mon Sep 17 00:00:00 2001 From: halcanary Date: Fri, 18 Mar 2016 07:32:39 -0700 Subject: [PATCH] pdf_metafile_skia: set metadata before drawing to pdf Motivation: while experimenting with serializing images immediately, we would like to keep serializing metadata first. Review URL: https://codereview.chromium.org/1778133005 Cr-Commit-Position: refs/heads/master@{#381959} --- printing/pdf_metafile_skia.cc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/printing/pdf_metafile_skia.cc b/printing/pdf_metafile_skia.cc index 0fade561eec065..6ba04c739a7079 100644 --- a/printing/pdf_metafile_skia.cc +++ b/printing/pdf_metafile_skia.cc @@ -159,14 +159,6 @@ bool PdfMetafileSkia::FinishDocument() { SkDynamicMemoryWStream pdf_stream; skia::RefPtr pdf_doc = skia::AdoptRef(SkDocument::CreatePDF(&pdf_stream)); - for (const auto& page : data_->pages_) { - SkCanvas* canvas = pdf_doc->beginPage( - page.page_size_.width(), page.page_size_.height(), &page.content_area_); - // No need to save/restore, since this canvas is not reused after endPage() - canvas->scale(page.scale_factor_, page.scale_factor_); - canvas->drawPicture(page.content_.get()); - pdf_doc->endPage(); - } const std::string& user_agent = GetAgent(); SkDocument::Attribute info[] = { SkDocument::Attribute(SkString("Creator"), @@ -176,6 +168,14 @@ bool PdfMetafileSkia::FinishDocument() { }; SkTime::DateTime now = TimeToSkTime(base::Time::Now()); pdf_doc->setMetadata(info, SK_ARRAY_COUNT(info), &now, &now); + for (const auto& page : data_->pages_) { + SkCanvas* canvas = pdf_doc->beginPage( + page.page_size_.width(), page.page_size_.height(), &page.content_area_); + // No need to save/restore, since this canvas is not reused after endPage() + canvas->scale(page.scale_factor_, page.scale_factor_); + canvas->drawPicture(page.content_.get()); + pdf_doc->endPage(); + } if (!pdf_doc->close()) return false;