diff options
author | halcanary <halcanary@google.com> | 2015-09-27 14:59:53 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-09-27 22:00:34 +0000 |
commit | 67ce00b8655fc75238c673154b5b100cf40740fd (patch) | |
tree | 250929092637911a2ee03d84d703625a65d4f1f5 /printing | |
parent | 1461e48329b74a0bf26496cd581096af0e9b7380 (diff) | |
download | chromium_src-67ce00b8655fc75238c673154b5b100cf40740fd.zip chromium_src-67ce00b8655fc75238c673154b5b100cf40740fd.tar.gz chromium_src-67ce00b8655fc75238c673154b5b100cf40740fd.tar.bz2 |
PdfMetafileSkia: Embed Creator, CreationDate, and ModDate in PDF.
Review URL: https://codereview.chromium.org/1367713002
Cr-Commit-Position: refs/heads/master@{#351011}
Diffstat (limited to 'printing')
-rw-r--r-- | printing/pdf_metafile_skia.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/printing/pdf_metafile_skia.cc b/printing/pdf_metafile_skia.cc index 78bcaec..bb22792 100644 --- a/printing/pdf_metafile_skia.cc +++ b/printing/pdf_metafile_skia.cc @@ -9,6 +9,7 @@ #include "base/metrics/histogram.h" #include "base/numerics/safe_conversions.h" #include "base/posix/eintr_wrapper.h" +#include "base/time/time.h" #include "skia/ext/refptr.h" #include "third_party/skia/include/core/SkData.h" #include "third_party/skia/include/core/SkDocument.h" @@ -127,6 +128,21 @@ bool PdfMetafileSkia::FinishPage() { return true; } +static SkTime::DateTime TimeToSkTime(base::Time time) { + base::Time::Exploded exploded; + time.UTCExplode(&exploded); + SkTime::DateTime skdate; + skdate.fTimeZoneMinutes = 0; + skdate.fYear = exploded.year; + skdate.fMonth = exploded.month; + skdate.fDayOfWeek = exploded.day_of_week; + skdate.fDay = exploded.day_of_month; + skdate.fHour = exploded.hour; + skdate.fMinute = exploded.minute; + skdate.fSecond = exploded.second; + return skdate; +} + bool PdfMetafileSkia::FinishDocument() { // If we've already set the data in InitFromData, leave it be. if (data_->pdf_data_) @@ -146,6 +162,10 @@ bool PdfMetafileSkia::FinishDocument() { canvas->drawPicture(page.content_.get()); pdf_doc->endPage(); } + SkTArray<SkDocument::Attribute> info; + info.emplace_back(SkString("Creator"), SkString("Chromium")); + SkTime::DateTime now = TimeToSkTime(base::Time::Now()); + pdf_doc->setMetadata(info, &now, &now); if (!pdf_doc->close()) return false; |