summaryrefslogtreecommitdiffstats
path: root/printing
diff options
context:
space:
mode:
authorhalcanary <halcanary@google.com>2015-09-27 14:59:53 -0700
committerCommit bot <commit-bot@chromium.org>2015-09-27 22:00:34 +0000
commit67ce00b8655fc75238c673154b5b100cf40740fd (patch)
tree250929092637911a2ee03d84d703625a65d4f1f5 /printing
parent1461e48329b74a0bf26496cd581096af0e9b7380 (diff)
downloadchromium_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.cc20
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;