Thành thật mà nói, shox, tôi không nghĩ rằng bạn có rất nhiều lựa chọn tốt ở đây. Tôi nhìn vào điều này một chút vì nó cũng thú vị với tôi, nhưng tôi không thể tìm thấy gì trong các tài liệu hoặc diễn đàn của phpword bên cạnh bài viết của bạn ở đó về cách làm điều này có thể. Ở mặt sau, bạn có thể thử để giải nén gói docx (đó là tệp zip) và thao tác trực tiếp các tệp XML. Tôi không có ý tưởng làm thế nào điều này sẽ đi ... giả thuyết, được thực hiện đúng, nó không có gì khác hơn nếu nó được thực hiện trong Word bằng tay. Tôi đã thử nghiệm bằng cách sử dụng một số văn bản phụ và thực hiện thủ công "Đánh dấu tất cả" cho chỉ mục trên một cụm từ trong tài liệu. Những gì tôi có thể tìm thấy như sau:
Thêm như đứa trẻ đầu tiên trong ~/[Content_Types] .xml:
<Override PartName="/customXml/itemProps1.xml" ContentType="application/vnd.openxmlformats-officedocument.customXmlProperties+xml" />
Tạo thư mục ~/CustomXml -
Trong thư mục ~/CustomXml , tạo 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>
Trong thư mục ~/CustomXml, tạo 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>
Tạo thư mục ~/CustomXml/_rels: Trong/_rels thư mục ~/CustomXml, tạo 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>
Các ~/docProps folder thay đổi, nhưng nó không liên quan như regenerates từ/cập nhật các giá trị này trên mỗi lần mở/đóng và chúng không có bất kỳ nội dung nào của tệp.
Về cơ bản, lá thư mục ~/word. Vì vậy, ~/từ/styles.xml thay đổi để thêm ở cuối một phong cách cho các chỉ số như sau:
<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>
Các w: yếu tố rsid trong ~/từ/settings.xml tất cả đã thay đổi, và trung thực , chúng nằm rải rác khắp nơi và tôi không chắc chúng hoạt động như thế nào/được tính toán hay chúng quan trọng quá nhiều.
Trong ~/word/_rels/document.xml.rels, sau đây đã được bổ sung như một đứa trẻ của nút mối quan hệ:
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml" Target="../customXml/item1.xml"/>
cuối và có lẽ quan trọng nhất, trong ~/từ/document.xml, mỗi lần xuất hiện của thuật ngữ của tôi cho chỉ mục ("ngồi") được theo sau bởi các yếu tố sau:
<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>
Ngoài ra còn có một chút ở cuối nơi tôi chèn các chỉ số:
<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>
Hy vọng điều này giúp. Tôi biết đó là một giải pháp phức tạp, nhưng đó là điều duy nhất tôi có thể tìm thấy sẽ giúp bạn và thực sự thực hiện điều này một cách tự động. Nó đánh bại the official, manual way of doing this một chút, và nên giữ các tính năng của một chỉ mục mà bạn đã làm theo cách đó. Tôi muốn giới thiệu nếu bạn nghiêm túc làm điều này, sử dụng WinMerge để xem sự khác biệt giữa các tệp (nhấp chuột phải và sử dụng So sánh Đặc biệt> XML khi bạn mở hai thư mục) và chúc bạn may mắn nhất. Nếu đó là một lần mặc dù, tôi chỉ cần cắn viên đạn và làm điều đó bằng tay. Nó có thể nhanh hơn và ít đau đầu hơn.
Tài liệu đó lớn đến mức nào? Bạn phải làm việc với bao nhiêu tài liệu? Đây có phải chỉ là một tệp để tạo hoặc bạn phải tạo hệ thống, tạo ra các chỉ mục để sử dụng sau này không? – Kamil
@Kamil chỉ một tệp về, tệp được tạo đầu tiên khoảng 200 trang. – shox