summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 23c42ff)
raw | patch | inline | side by side (parent: 23c42ff)
author | ishmal <ishmal@users.sourceforge.net> | |
Thu, 13 Apr 2006 22:30:54 +0000 (22:30 +0000) | ||
committer | ishmal <ishmal@users.sourceforge.net> | |
Thu, 13 Apr 2006 22:30:54 +0000 (22:30 +0000) |
src/extension/internal/odf.cpp | patch | blob | history | |
src/extension/internal/odf.h | patch | blob | history |
index 6a1e3710776a5ae4b7e8b979a59bf8d68b89f45b..42d8453407053576304920f389d125cf7844d54d 100644 (file)
outs.printf("<manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\">\n");
outs.printf(" <manifest:file-entry manifest:media-type=\"application/vnd.oasis.opendocument.graphics\" manifest:full-path=\"/\"/>\n");
outs.printf(" <manifest:file-entry manifest:media-type=\"text/xml\" manifest:full-path=\"content.xml\"/>\n");
- //outs.printf(" <manifest:file-entry manifest:media-type=\"text/xml\" manifest:full-path=\"meta.xml\"/>\n");
+ outs.printf(" <manifest:file-entry manifest:media-type=\"text/xml\" manifest:full-path=\"meta.xml\"/>\n");
outs.printf(" <!--List our images here-->\n");
std::map<std::string, std::string>::iterator iter;
for (iter = imageTable.begin() ; iter!=imageTable.end() ; iter++)
}
+bool OdfOutput::writeMeta(ZipFile &zf)
+{
+ BufferOutputStream bouts;
+ OutputStreamWriter outs(bouts);
+
+ time_t tim;
+ time(&tim);
+
+ outs.printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+ outs.printf("\n");
+ outs.printf("\n");
+ outs.printf("<!--\n");
+ outs.printf("*************************************************************************\n");
+ outs.printf(" file: meta.xml\n");
+ outs.printf(" Generated by Inkscape: %s", ctime(&tim)); //ctime has its own <cr>
+ outs.printf(" http://www.inkscape.org\n");
+ outs.printf("*************************************************************************\n");
+ outs.printf("-->\n");
+ outs.printf("\n");
+ outs.printf("\n");
+ outs.printf("<office:document-meta\n");
+ outs.printf("xmlns:office=\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\"\n");
+ outs.printf("xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n");
+ outs.printf("xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n");
+ outs.printf("xmlns:meta=\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\"\n");
+ outs.printf("xmlns:presentation=\"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\"\n");
+ outs.printf("xmlns:ooo=\"http://openoffice.org/2004/office\"\n");
+ outs.printf("xmlns:smil=\"urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0\"\n");
+ outs.printf("xmlns:anim=\"urn:oasis:names:tc:opendocument:xmlns:animation:1.0\"\n");
+ outs.printf("office:version=\"1.0\">\n");
+ outs.printf("<office:meta>\n");
+ outs.printf(" <meta:generator>Inkscape.org - 0.44</meta:generator>\n");
+ outs.printf(" <meta:initial-creator>clark kent</meta:initial-creator>\n");
+ outs.printf(" <meta:creation-date>2006-04-13T17:12:29</meta:creation-date>\n");
+ outs.printf(" <dc:creator>clark kent</dc:creator>\n");
+ outs.printf(" <dc:date>2006-04-13T17:13:20</dc:date>\n");
+ outs.printf(" <dc:language>en-US</dc:language>\n");
+ outs.printf(" <meta:editing-cycles>2</meta:editing-cycles>\n");
+ outs.printf(" <meta:editing-duration>PT56S</meta:editing-duration>\n");
+ outs.printf(" <meta:user-defined meta:name=\"Info 1\"/>\n");
+ outs.printf(" <meta:user-defined meta:name=\"Info 2\"/>\n");
+ outs.printf(" <meta:user-defined meta:name=\"Info 3\"/>\n");
+ outs.printf(" <meta:user-defined meta:name=\"Info 4\"/>\n");
+ outs.printf(" <meta:document-statistic meta:object-count=\"2\"/>\n");
+ outs.printf("</office:meta>\n");
+ outs.printf("</office:document-meta>\n");
+ outs.printf("\n");
+ outs.printf("\n");
+
+
+ outs.close();
+
+ //Make our entry
+ ZipEntry *ze = zf.newEntry("meta.xml", "ODF info file");
+ ze->setUncompressedData(bouts.getBuffer());
+ ze->finish();
+ return true;
+}
bool OdfOutput::writeStyle(Writer &outs)
outs.printf("<!--\n");
outs.printf("*************************************************************************\n");
outs.printf(" E N D O F F I L E\n");
- outs.printf(" Have a nice day -- ishmal\n");
+ outs.printf(" Have a nice day - ishmal\n");
outs.printf("*************************************************************************\n");
outs.printf("-->\n");
outs.printf("\n");
@@ -527,16 +585,25 @@ OdfOutput::save(Inkscape::Extension::Output *mod, SPDocument *doc, gchar const *
styleTable.clear();
imageTable.clear();
preprocess(zf, doc->rroot);
+
if (!writeManifest(zf))
{
g_warning("Failed to write manifest");
return;
}
+
+ if (!writeMeta(zf))
+ {
+ g_warning("Failed to write metafile");
+ return;
+ }
+
if (!writeContent(zf, doc->rroot))
{
g_warning("Failed to write content");
return;
}
+
if (!zf.writeFile(uri))
{
return;
index 250b807d5228f55909d951d74c44dbf47d7d8401..e1cf133db7fc5b051b287061eabbbafb997d437a 100644 (file)
bool writeManifest(ZipFile &zf);
+ bool writeMeta(ZipFile &zf);
+
bool writeStyle(Writer &outs);
bool writeTree(Writer &outs, Inkscape::XML::Node *node);