Как я могу увеличить свои пули в Open XML? - PullRequest
0 голосов
/ 09 января 2020

Я генерирую docx файлы, используя Open XML SDK для. NET

Пули в моих списках очень маленькие, но я не могу понять, почему. Итак, вот что я сделал:

  1. Создание do c с одним маркированным элементом
  2. Создание do c из Word с одним маркированным элементом
  3. Используется Open XML Инструменты повышения производительности для сравнения обоих файлов
  4. Не могу увидеть, что я не вижу различий

Если я нажму на пулю в обоих, туда, где она показывает шрифт и размер, они оба одинаковы! Я не вижу различий в разделе нумерации xml или где-либо еще по этому вопросу. Возможно, я упускаю что-то элементарное.

enter image description here enter image description here

Вот код для numbering части:

  var abstractNumberId = part.Numbering.Elements<AbstractNum>().Count() + 1;
  var abstractNum = new AbstractNum { AbstractNumberId = abstractNumberId };
  if (initialIndent == 0)
  {
      initialIndent = 1;
  }

  var start1 = (initialIndent * 720);

  abstractNum.SetAttribute(new OpenXmlAttribute("w15", "restartNumberingAfterBreak", "http://schemas.microsoft.com/office/word/2012/wordml", "1"));
  var multiLevelType = new MultiLevelType { Val = MultiLevelValues.HybridMultilevel };
  var templateCode = new TemplateCode { Val = "48A2E570" };

  var level = new Level { LevelIndex = 0, TemplateCode = "0409000F" };
  var startNumberingValue = new StartNumberingValue { Val = 1 };
  var restartValue = new LevelRestart() { Val = 0 };
  var numberingFormat = new NumberingFormat { Val = NumberFormatValues.Bullet };
  var levelText = new LevelText { Val = "%1." };
  var levelJustification = new LevelJustification { Val = LevelJustificationValues.Left };
  var previousParagraphProperties = new PreviousParagraphProperties();
  var indentation = new Indentation { Start = start1.ToString(), Hanging = "360" };

  previousParagraphProperties.Append(indentation);

  level.Append(startNumberingValue);
  level.Append(numberingFormat);
  level.Append(restartValue);
  level.Append(levelText);
  level.Append(levelJustification);
  level.Append(previousParagraphProperties);

  abstractNum.Append(multiLevelType);
  abstractNum.Append(templateCode);
  abstractNum.Append(level);



  var numberId = part.Numbering.Elements<NumberingInstance>().Count() + 1;
  var numberingInstance = new NumberingInstance { NumberID = numberId };
  var abstractNumId = new AbstractNumId { Val = abstractNumberId };
  numberingInstance.Append(abstractNumId);


  if (abstractNumberId == 1)
  {
    part.Numbering.Append(abstractNum);
  }
  else
  {
    var lastAbstractNum = part.Numbering.Elements<AbstractNum>().Last();
    part.Numbering.InsertAfter(abstractNum, lastAbstractNum);
  }

  if (numberId == 1)
  {
    part.Numbering.Append(numberingInstance);
  }
  else
  {
    var lastNumberingInstance = part.Numbering.Elements<NumberingInstance>().Last();
    part.Numbering.InsertAfter(numberingInstance, lastNumberingInstance);
  }


  return numberId;

Вот XML для большой пули:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<w:document xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:cx="http://schemas.microsoft.com/office/drawing/2014/chartex" xmlns:cx1="http://schemas.microsoft.com/office/drawing/2015/9/8/chartex" xmlns:cx2="http://schemas.microsoft.com/office/drawing/2015/10/21/chartex" xmlns:cx3="http://schemas.microsoft.com/office/drawing/2016/5/9/chartex" xmlns:cx4="http://schemas.microsoft.com/office/drawing/2016/5/10/chartex" xmlns:cx5="http://schemas.microsoft.com/office/drawing/2016/5/11/chartex" xmlns:cx6="http://schemas.microsoft.com/office/drawing/2016/5/12/chartex" xmlns:cx7="http://schemas.microsoft.com/office/drawing/2016/5/13/chartex" xmlns:cx8="http://schemas.microsoft.com/office/drawing/2016/5/14/chartex" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:aink="http://schemas.microsoft.com/office/drawing/2016/ink" xmlns:am3d="http://schemas.microsoft.com/office/drawing/2017/model3d" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml" xmlns:w16cid="http://schemas.microsoft.com/office/word/2016/wordml/cid" xmlns:w16se="http://schemas.microsoft.com/office/word/2015/wordml/symex" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" mc:Ignorable="w14 w15 w16se w16cid wp14">
 <w:body>
  <w:p w14:paraId="6279EAE9" w14:textId="5895C066" w:rsidR="008070A4" w:rsidRPr="009228DC" w:rsidRDefault="00281441" w:rsidP="00984CDF">
   <w:pPr>
    <w:pStyle w:val="ListParagraph"/>
    <w:numPr>
     <w:ilvl w:val="0"/>
     <w:numId w:val="5"/>
    </w:numPr>
    <w:ind w:left="0"/>
    <w:rPr>
     <w:rFonts w:cstheme="minorHAnsi"/>
    </w:rPr>
   </w:pPr>
   <w:bookmarkStart w:id="0" w:name="_GoBack"/>
   <w:bookmarkEnd w:id="0"/>
   <w:r w:rsidRPr="009228DC">
    <w:rPr>
     <w:rFonts w:cstheme="minorHAnsi"/>
    </w:rPr>
    <w:t>
     Large bullet
    </w:t>
   </w:r>
  </w:p>
  <w:sectPr w:rsidR="008070A4" w:rsidRPr="009228DC">
   <w:pgSz w:w="12240" w:h="15840"/>
   <w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440" w:header="720" w:footer="720" w:gutter="0"/>
   <w:cols w:space="720"/>
   <w:docGrid w:linePitch="360"/>
  </w:sectPr>
 </w:body>
</w:document>

А вот xml для маленькой:

    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<w:document xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:cx="http://schemas.microsoft.com/office/drawing/2014/chartex" xmlns:cx1="http://schemas.microsoft.com/office/drawing/2015/9/8/chartex" xmlns:cx2="http://schemas.microsoft.com/office/drawing/2015/10/21/chartex" xmlns:cx3="http://schemas.microsoft.com/office/drawing/2016/5/9/chartex" xmlns:cx4="http://schemas.microsoft.com/office/drawing/2016/5/10/chartex" xmlns:cx5="http://schemas.microsoft.com/office/drawing/2016/5/11/chartex" xmlns:cx6="http://schemas.microsoft.com/office/drawing/2016/5/12/chartex" xmlns:cx7="http://schemas.microsoft.com/office/drawing/2016/5/13/chartex" xmlns:cx8="http://schemas.microsoft.com/office/drawing/2016/5/14/chartex" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:aink="http://schemas.microsoft.com/office/drawing/2016/ink" xmlns:am3d="http://schemas.microsoft.com/office/drawing/2017/model3d" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml" xmlns:w16cid="http://schemas.microsoft.com/office/word/2016/wordml/cid" xmlns:w16se="http://schemas.microsoft.com/office/word/2015/wordml/symex" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" mc:Ignorable="w14 w15 w16se w16cid wp14">
 <w:body>
  <w:p w14:paraId="6279EAE9" w14:textId="4866CD41" w:rsidR="008070A4" w:rsidRPr="009228DC" w:rsidRDefault="00221689" w:rsidP="008C6B6F">
   <w:pPr>
    <w:pStyle w:val="ListParagraph"/>
    <w:numPr>
     <w:ilvl w:val="0"/>
     <w:numId w:val="1"/>
    </w:numPr>
    <w:ind w:left="0"/>
    <w:rPr>
     <w:rFonts w:cstheme="minorHAnsi"/>
    </w:rPr>
   </w:pPr>
   <w:bookmarkStart w:id="0" w:name="_GoBack"/>
   <w:bookmarkEnd w:id="0"/>
   <w:r w:rsidRPr="009228DC">
    <w:rPr>
     <w:rFonts w:cstheme="minorHAnsi"/>
    </w:rPr>
    <w:t>
     This is a bulleted list
    </w:t>
   </w:r>
  </w:p>
  <w:sectPr w:rsidR="008070A4" w:rsidRPr="009228DC">
   <w:pgSz w:w="12240" w:h="15840"/>
   <w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440" w:header="720" w:footer="720" w:gutter="0"/>
   <w:cols w:space="720"/>
   <w:docGrid w:linePitch="360"/>
  </w:sectPr>
 </w:body>
</w:document>

1 Ответ

1 голос
/ 13 января 2020

Форматирование маркеров и чисел определяется в элементах w:abstractNum (или точнее их потомках), которые содержатся в элементе w:numbering root элемента NumberingDefinitionsPart. Ваш w:document root элемент MainDocumentPart может быть полностью идентичен. В вашем случае, однако, вы должны по крайней мере увидеть, что элементы w:numId имеют разные значения атрибута w:val, то есть они указывают на разные экземпляры нумерации и соответствующие определения маркеров.

Таким образом, вам необходимо установить составьте правильные определения нумерации, а затем сослаться на это из основной части документа.

...