MetaInf.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheet\Writer\Ods;
  3. use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
  4. class MetaInf extends WriterPart
  5. {
  6. /**
  7. * Write META-INF/manifest.xml to XML format.
  8. *
  9. * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
  10. *
  11. * @return string XML Output
  12. */
  13. public function writeManifest()
  14. {
  15. $objWriter = null;
  16. if ($this->getParentWriter()->getUseDiskCaching()) {
  17. $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
  18. } else {
  19. $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
  20. }
  21. // XML header
  22. $objWriter->startDocument('1.0', 'UTF-8');
  23. // Manifest
  24. $objWriter->startElement('manifest:manifest');
  25. $objWriter->writeAttribute('xmlns:manifest', 'urn:oasis:names:tc:opendocument:xmlns:manifest:1.0');
  26. $objWriter->writeAttribute('manifest:version', '1.2');
  27. $objWriter->startElement('manifest:file-entry');
  28. $objWriter->writeAttribute('manifest:full-path', '/');
  29. $objWriter->writeAttribute('manifest:version', '1.2');
  30. $objWriter->writeAttribute('manifest:media-type', 'application/vnd.oasis.opendocument.spreadsheet');
  31. $objWriter->endElement();
  32. $objWriter->startElement('manifest:file-entry');
  33. $objWriter->writeAttribute('manifest:full-path', 'meta.xml');
  34. $objWriter->writeAttribute('manifest:media-type', 'text/xml');
  35. $objWriter->endElement();
  36. $objWriter->startElement('manifest:file-entry');
  37. $objWriter->writeAttribute('manifest:full-path', 'settings.xml');
  38. $objWriter->writeAttribute('manifest:media-type', 'text/xml');
  39. $objWriter->endElement();
  40. $objWriter->startElement('manifest:file-entry');
  41. $objWriter->writeAttribute('manifest:full-path', 'content.xml');
  42. $objWriter->writeAttribute('manifest:media-type', 'text/xml');
  43. $objWriter->endElement();
  44. $objWriter->startElement('manifest:file-entry');
  45. $objWriter->writeAttribute('manifest:full-path', 'Thumbnails/thumbnail.png');
  46. $objWriter->writeAttribute('manifest:media-type', 'image/png');
  47. $objWriter->endElement();
  48. $objWriter->startElement('manifest:file-entry');
  49. $objWriter->writeAttribute('manifest:full-path', 'styles.xml');
  50. $objWriter->writeAttribute('manifest:media-type', 'text/xml');
  51. $objWriter->endElement();
  52. $objWriter->endElement();
  53. return $objWriter->getData();
  54. }
  55. }