2016-12-06 2 views
1

Я работаю над приложением, которое генерирует значительный файл ODT. Приложение записывает XML в content.xml, styles.xml и т. Д. Я пытаюсь получить простой стиль таблицы в таблице, и после создания файла я могу проверить, что все это происходит на стороне XML, поскольку Я бы ожидал этого, но ни один из стилей на самом деле не показывает, когда я открываю файл в текстовом процессоре. Я сломал его, просто попробовав сделать простую таблицу, показывающую некоторые стили, и даже это не работает вообще.Стиль таблицы ODT в XML не работает

В теге «автоматические стили» у меня есть этот фрагмент стиля.

<style:style style:name="mytable" style:family="table"> 
     <style:properties 
      fo:background-color="#666666" 
      style:width="445.5pt" 
      fo:margin-left="4.5pt" 
      fo:margin-top="0pt" 
      fo:margin-bottom="0pt" 
      table:align="left" 
     /> 
    </style:style> 
    <style:style style:name="mytable.A" style:family="table-column"> 
     <style:properties fo:background-color="#000000" style:column-width="117pt"/> 
    </style:style> 
    <style:style style:name="mytable.B" style:family="table-column"> 
     <style:properties style:column-width="103.5pt"/> 
    </style:style> 
    <style:style style:name="mytable.C" style:family="table-column"> 
     <style:properties style:column-width="193.5pt"/> 
    </style:style> 
    <style:style style:name="mytable.D" style:family="table-column"> 
     <style:properties style:column-width="31.5pt"/> 
    </style:style> 

EDIT: Вот скриншот моего живого документа. Это часть content.xml из этого точного документа, стиль, указанный выше, тот же.

<table:table table:name="mytable" table:style-name="mytable"> 
     <table:table-columns> 
      <table:table-column table:style-name="mytable.A"/> 
      <table:table-column table:style-name="mytable.B"/> 
      <table:table-column table:style-name="mytable.C"/> 
      <table:table-column table:style-name="mytable.D"/> 
     </table:table-columns> 
     <table:table-header-rows> 
      <table:table-row> 
       <table:table-cell table:style-name="mytable.A1" office:value-type="string"> 
        <text:p text:style-name="P39">citation</text:p> 
       </table:table-cell> 
       <table:table-cell table:style-name="mytable.B1" office:value-type="string"> 
        <text:p text:style-name="P39">title</text:p> 
       </table:table-cell> 
       <table:table-cell table:style-name="mytable.C1" office:value-type="string"> 
        <text:p text:style-name="P39">description</text:p> 
       </table:table-cell> 
       <table:table-cell table:style-name="mytable.D1" office:value-type="string"> 
        <text:p p text:style-name="P38"/> 
       </table:table-cell> 
      </table:table-row> 
     </table:table-header-rows> 
     <table:table-row> 
      <table:table-cell table:style-name="mytable.A2" office:value-type="string"> 
       <text:p p text:style-name="P39">Administrative Safe-guards</text:p> 
      </table:table-cell> 
      <table:table-cell table:style-name="mytable.B2" office:value-type="string"> 
       <text:p p text:style-name="P39"/> 
      </table:table-cell> 
      <table:table-cell table:style-name="mytable.C2" office:value-type="string"> 
       <text:p p text:style-name="P39"/> 
      </table:table-cell> 
      <table:table-cell table:style-name="mytable.D2" office:value-type="string"> 
       <text:p p text:style-name="P38"/> 
      </table:table-cell> 
     </table:table-row> 
    </table:table> 

screenshot

+0

Не могли бы вы опубликовать снимок экрана, что таблица выглядит в Writer? –

+0

Я добавил скриншот к редактированию, а также фактический xml в content.xml – user2303120

ответ

0

Вместо style:properties, дочерний узел должен быть style:table-properties. Это объясняется в http://books.evc-cit.info/odbook/ch04.html#text-table-style-section.

<office:automatic-styles> 
<style:style style:name="mytable" style:family="table"> 
    <style:table-properties 
     fo:background-color="#666666" 
     style:width="445.5pt" 
     fo:margin-left="4.5pt" 
     fo:margin-top="0pt" 
     fo:margin-bottom="0pt" 
     table:align="left" 
    /> 
</style:style> 

table style

+0

Сначала я попытался это сделать, и это не исправило его, и я ушел из документации Apache, найденной в строке 256 здесь http://www.openoffice.org/xml/xml_specification.pdf – user2303120

+0

Ну, после внесения изменений, это сработало для меня, как показано на рисунке. Какую операционную систему и версию Office вы используете? Связанный PDF-документ с 2002 года, поэтому, возможно, синтаксис устарел. –

+0

Я протестировал его с Apache OpenOffice 4.1.3 в Windows. –

Смежные вопросы