Honestamente, shox, no creo que tengas muchas buenas opciones aquí. Lo analicé un poco, ya que también es interesante para mí, pero no pude encontrar nada en los documentos o foros de phpword además de sus publicaciones allí sobre cómo hacer esto posible. En la parte posterior de eso, puede probar para descomprimir el paquete docx (es un archivo zip) y manipular los archivos XML directamente. No tengo idea de cómo irá esto ... hipotéticamente, hecho bien, no es diferente de si se hizo en Word manualmente. Experimenté usando un texto de relleno y haciendo manualmente un "Marcar todo" para el índice en un término del documento. Lo que puedo encontrar es el siguiente:
añade que el primer hijo en ~/[Content_Types] .xml:
<Override PartName="/customXml/itemProps1.xml" ContentType="application/vnd.openxmlformats-officedocument.customXmlProperties+xml" />
crea la carpeta ~/CustomXML -
En la carpeta ~/CustomXML , crea item1.xml:
<b:Sources SelectedStyle="\APA.XSL" StyleName="APA" xmlns:b="http://schemas.openxmlformats.org/officeDocument/2006/bibliography" xmlns="http://schemas.openxmlformats.org/officeDocument/2006/bibliography"></b:Sources>
En la carpeta ~/CustomXML, crea itemProps1.xml:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ds:datastoreItem ds:itemID="{3DC430FE-7F6E-49D7-9EFC-E4F37E42ABA0}" xmlns:ds="http://schemas.openxmlformats.org/officeDocument/2006/customXml">
<ds:schemaRefs>
<ds:schemaRef ds:uri="http://schemas.openxmlformats.org/officeDocument/2006/bibliography"/>
</ds:schemaRefs>
</ds:datastoreItem>
crea la carpeta ~/CustomXML/_rels: En la carpeta ~/CustomXML/_rels, crea item1.xml.rels:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps" Target="itemProps1.xml"/>
</Relationships>
Los ~/docProps carpeta cambiado, pero es irrelevante, ya que regenera palabra/actualiza estos valores en cada apertura/cierre, y no tienen ninguna relación con el contenido del archivo.
Básicamente, esto deja la carpeta ~/word. Por lo tanto, los cambios ~/palabra/styles.xml para añadir al final un estilo para el índice, de la siguiente manera:
<w:style w:type="paragraph" w:styleId="Index1">
<w:name w:val="index 1"/>
<w:basedOn w:val="Normal"/>
<w:next w:val="Normal"/>
<w:autoRedefine/>
<w:uiPriority w:val="99"/>
<w:semiHidden/>
<w:unhideWhenUsed/>
<w:rsid w:val="00C52B35"/>
<w:pPr>
<w:spacing w:after="0" w:line="240" w:lineRule="auto"/>
<w:ind w:left="220" w:hanging="220"/>
</w:pPr>
</w:style>
El w: Elementos rsid en ~/palabra/settings.xml todo cambió, y honestamente , estos están dispersos por todas partes y no estoy seguro de cómo funcionan/son calculados o si importan demasiado.
En ~/word/_rels/document.xml.REL, se añadió lo siguiente como un hijo del nodo Relaciones:
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml" Target="../customXml/item1.xml"/>
pasado y quizás lo más importante, en ~/palabra/document.xml, es seguido en cada caso, de mi mandato para la indexación ("sentarse") por los siguientes elementos:
<w:r w:rsidR="00C52B35">
<w:fldChar w:fldCharType="begin"/>
</w:r>
<w:r w:rsidR="00C52B35">
<w:instrText xml:space="preserve">XE "</w:instrText>
</w:r>
<w:r w:rsidR="00C52B35" w:rsidRPr="00C90937">
<w:instrText>sit</w:instrText>
</w:r>
<w:r w:rsidR="00C52B35">
<w:instrText xml:space="preserve">"</w:instrText>
</w:r>
<w:r w:rsidR="00C52B35">
<w:fldChar w:fldCharType="end"/>
</w:r>
Hay también un poco en el extremo donde insertar el índice:
<w:p w:rsidR="00C52B35" w:rsidRDefault="00C52B35" w:rsidP="00DE5AB4">
<w:pPr>
<w:rPr>
<w:b/>
<w:noProof/>
</w:rPr>
<w:sectPr w:rsidR="00C52B35" w:rsidSect="00C52B35">
<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:pPr>
<w:r>
<w:rPr>
<w:b/>
</w:rPr>
<w:fldChar w:fldCharType="begin"/>
</w:r>
<w:r>
<w:rPr>
<w:b/>
</w:rPr>
<w:instrText xml:space="preserve">INDEX \c "2" \z "1033"</w:instrText>
</w:r>
<w:r>
<w:rPr>
<w:b/>
</w:rPr>
<w:fldChar w:fldCharType="separate"/>
</w:r>
</w:p>
<w:p w:rsidR="00C52B35" w:rsidRDefault="00C52B35">
<w:pPr>
<w:rPr>
<w:noProof/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:noProof/>
</w:rPr>
<w:lastRenderedPageBreak/>
<w:br w:type="page"/>
</w:r>
</w:p>
<w:p w:rsidR="00C52B35" w:rsidRDefault="00C52B35">
<w:pPr>
<w:pStyle w:val="Index1"/>
<w:tabs>
<w:tab w:val="right" w:leader="dot" w:pos="4310"/>
</w:tabs>
<w:rPr>
<w:noProof/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:noProof/>
</w:rPr>
<w:lastRenderedPageBreak/>
<w:t>sit, 1, 2</w:t>
</w:r>
</w:p>
<w:p w:rsidR="00C52B35" w:rsidRDefault="00C52B35" w:rsidP="00DE5AB4">
<w:pPr>
<w:rPr>
<w:b/>
<w:noProof/>
</w:rPr>
<w:sectPr w:rsidR="00C52B35" w:rsidSect="00C52B35">
<w:type w:val="continuous"/>
<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:num="2" w:space="720"/>
<w:docGrid w:linePitch="360"/>
</w:sectPr>
</w:pPr>
</w:p>
<w:p w:rsidR="00371DB1" w:rsidRPr="00371DB1" w:rsidRDefault="00C52B35" w:rsidP="00DE5AB4">
<w:pPr>
<w:rPr>
<w:b/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:b/>
</w:rPr>
<w:lastRenderedPageBreak/>
<w:fldChar w:fldCharType="end"/>
</w:r>
</w:p>
Esperemos que esto ayuda. Sé que es una solución compleja, pero es lo único que puedo encontrar que lo ayudará y realmente lo logrará de manera automatizada. Le gana un poco al the official, manual way of doing this, y debe mantener las características de un índice que usted hizo de esa manera. Lo recomendaría si lo hace en serio, usando WinMerge para ver las diferencias entre los archivos (haga clic con el botón derecho y utilice Compare Special> XML una vez que abra dos carpetas) y le deseo la mejor de las suertes. Sin embargo, si se trata de una oportunidad única, me limitaría a morder la bala y hacerlo manualmente. Probablemente sea más rápido y tenga menos dolores de cabeza.
¿Qué tan grande es ese documento? ¿Con cuántos documentos tiene que trabajar? ¿Es esto solo un archivo para generar, o tienes que crear un sistema, que genere índices para su uso posterior también? – Kamil
@Kamil solo un archivo de palabra, el primer archivo generado de aproximadamente 200 páginas. – shox