blob: 0f77f7bbb87523e74a6736e2188c5fbd4948c020 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "printing/common/pdf_metafile_utils.h"
#include "base/time/time.h"
#include "third_party/skia/include/core/SkTime.h"
namespace {
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;
}
} // namespace
namespace printing {
sk_sp<SkDocument> MakePdfDocument(const std::string& creator,
SkWStream* stream) {
SkDocument::PDFMetadata metadata;
SkTime::DateTime now = TimeToSkTime(base::Time::Now());
metadata.fCreation.fEnabled = true;
metadata.fCreation.fDateTime = now;
metadata.fModified.fEnabled = true;
metadata.fModified.fDateTime = now;
metadata.fCreator = creator.empty()
? SkString("Chromium")
: SkString(creator.c_str(), creator.size());
return SkDocument::MakePDF(stream, metadata);
}
} // namespace printing