OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "SkMilestone.h" | 8 #include "SkMilestone.h" |
9 #include "SkPDFMetadata.h" | 9 #include "SkPDFMetadata.h" |
10 #include "SkPDFTypes.h" | 10 #include "SkPDFTypes.h" |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 dict->insertString("Producer", "Skia/PDF m" SKPDF_STRING(SK_MILESTONE)); | 45 dict->insertString("Producer", "Skia/PDF m" SKPDF_STRING(SK_MILESTONE)); |
46 if (fCreation) { | 46 if (fCreation) { |
47 dict->insertString("CreationDate", pdf_date(*fCreation.get())); | 47 dict->insertString("CreationDate", pdf_date(*fCreation.get())); |
48 } | 48 } |
49 if (fModified) { | 49 if (fModified) { |
50 dict->insertString("ModDate", pdf_date(*fModified.get())); | 50 dict->insertString("ModDate", pdf_date(*fModified.get())); |
51 } | 51 } |
52 return dict.release(); | 52 return dict.release(); |
53 } | 53 } |
54 | 54 |
55 #undef SKPDF_STRING | |
56 #undef SKPDF_STRING_IMPL | |
57 | |
58 #ifdef SK_PDF_GENERATE_PDFA | 55 #ifdef SK_PDF_GENERATE_PDFA |
59 SkPDFMetadata::UUID SkPDFMetadata::uuid() const { | 56 SkPDFMetadata::UUID SkPDFMetadata::uuid() const { |
60 // The main requirement is for the UUID to be unique; the exact | 57 // The main requirement is for the UUID to be unique; the exact |
61 // format of the data that will be hashed is not important. | 58 // format of the data that will be hashed is not important. |
62 SkMD5 md5; | 59 SkMD5 md5; |
63 const char uuidNamespace[] = "org.skia.pdf\n"; | 60 const char uuidNamespace[] = "org.skia.pdf\n"; |
64 md5.write(uuidNamespace, strlen(uuidNamespace)); | 61 md5.write(uuidNamespace, strlen(uuidNamespace)); |
65 double msec = SkTime::GetMSecs(); | 62 double msec = SkTime::GetMSecs(); |
66 md5.write(&msec, sizeof(msec)); | 63 md5.write(&msec, sizeof(msec)); |
67 SkTime::DateTime dateTime; | 64 SkTime::DateTime dateTime; |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
290 "%s" // CreateDate | 287 "%s" // CreateDate |
291 "%s" // MetadataDate | 288 "%s" // MetadataDate |
292 "%s" // xmp:CreatorTool | 289 "%s" // xmp:CreatorTool |
293 "<dc:format>application/pdf</dc:format>\n" | 290 "<dc:format>application/pdf</dc:format>\n" |
294 "%s" // dc:title | 291 "%s" // dc:title |
295 "%s" // dc:description | 292 "%s" // dc:description |
296 "%s" // author | 293 "%s" // author |
297 "%s" // keywords | 294 "%s" // keywords |
298 "<xmpMM:DocumentID>uuid:%s</xmpMM:DocumentID>\n" | 295 "<xmpMM:DocumentID>uuid:%s</xmpMM:DocumentID>\n" |
299 "<xmpMM:InstanceID>uuid:%s</xmpMM:InstanceID>\n" | 296 "<xmpMM:InstanceID>uuid:%s</xmpMM:InstanceID>\n" |
300 "<pdf:Producer>Skia/PDF</pdf:Producer>\n" | 297 "<pdf:Producer>Skia/PDF m" SKPDF_STRING(SK_MILESTONE) "</pdf:Produce
r>\n" |
301 "%s" // pdf:Keywords | 298 "%s" // pdf:Keywords |
302 "</rdf:Description>\n" | 299 "</rdf:Description>\n" |
303 "</rdf:RDF>\n" | 300 "</rdf:RDF>\n" |
304 "</x:xmpmeta>\n" // Note: the standard suggests 4k of padding. | 301 "</x:xmpmeta>\n" // Note: the standard suggests 4k of padding. |
305 "<?xpacket end=\"w\"?>\n"; | 302 "<?xpacket end=\"w\"?>\n"; |
306 | 303 |
307 SkString creationDate; | 304 SkString creationDate; |
308 SkString modificationDate; | 305 SkString modificationDate; |
309 SkString metadataDate; | 306 SkString metadataDate; |
310 if (fCreation) { | 307 if (fCreation) { |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
349 SkString instanceID = uuid_to_string(instance); | 346 SkString instanceID = uuid_to_string(instance); |
350 SkASSERT(0 == count_xml_escape_size(instanceID)); | 347 SkASSERT(0 == count_xml_escape_size(instanceID)); |
351 return new PDFXMLObject(sk_string_printf( | 348 return new PDFXMLObject(sk_string_printf( |
352 templateString, modificationDate.c_str(), creationDate.c_str(), | 349 templateString, modificationDate.c_str(), creationDate.c_str(), |
353 metadataDate.c_str(), creator.c_str(), title.c_str(), | 350 metadataDate.c_str(), creator.c_str(), title.c_str(), |
354 subject.c_str(), author.c_str(), keywords1.c_str(), | 351 subject.c_str(), author.c_str(), keywords1.c_str(), |
355 documentID.c_str(), instanceID.c_str(), keywords2.c_str())); | 352 documentID.c_str(), instanceID.c_str(), keywords2.c_str())); |
356 } | 353 } |
357 | 354 |
358 #endif // SK_PDF_GENERATE_PDFA | 355 #endif // SK_PDF_GENERATE_PDFA |
| 356 |
| 357 #undef SKPDF_STRING |
| 358 #undef SKPDF_STRING_IMPL |
| 359 |
OLD | NEW |