Tôi cần có danh sách dấu đầu dòng trong tài liệu từ với dấu đầu dòng và tùy chỉnh, được tạo thông qua Java với API Apache POI. Tôi đã tìm kiếm và tôi không thể tìm thấy nó cho tài liệu Word. Nó có sẵn cho slide Powerpoint bằng cách sử dụng hộp văn bản. Nhưng tôi không muốn sử dụng hộp văn bản. Xin vui lòng cho tôi biết khả năng để đạt được nó. Bất kỳ giúp đỡ nhiều đánh giá cao. Cảm ơn! Kính trọng, Arun Ganesh. PTạo danh sách Bullet trên tài liệu từ bằng Java với Apache POI API
Trả lời
HWPF POI là một api chưa trưởng thành - phát triển dẫn đã được cung cấp một công việc đó kéo theo việc ký kết một thỏa thuận không tiết lộ và ông đã buộc phải bỏ làm việc trong nó - và nó có thể không thể sử dụng nó để tạo các tệp bạn muốn.
Điều này thực sự chỉ có thể với các định dạng OOXML 2007 và lên (sử dụng XWPF POI). Vì nó dựa trên XML, bạn luôn có thể thực hiện thao tác DOM để đạt được những gì bạn muốn. Cách dễ nhất để tạo điểm bullet là tạo danh sách dấu đầu dòng và thêm dấu trang làm văn bản của viên đạn đó. Khi xử lý tài liệu, tìm dấu trang của bạn, sau đó nhận nút DOM với
`org.w3c.dom.Node bkmk = bookmark.getctBookmark).getDomNode();`
Sau đó, sao chép nút gốc của nút bkmk, là thẻ đoạn. Bây giờ bạn có một thẻ đoạn trùng lặp có tất cả các thẻ con cần thiết để trở thành một phần của danh sách dấu đầu dòng. Hãy xem, trong OOXML không có cấu trúc của một danh sách dấu đầu dòng, nó chỉ đơn giản là tiếp tục nối tiếp các đoạn có các thẻ con số tương tự.
<w:p>
<w:pPr>
<w:pStyle w:val="style0" />
<w:numPr>
<w:ilvl w:val="1" />
<w:numId w:val="2" />
</w:numPr>
<w:tabs>
<w:tab w:leader="none" w:pos="1807" w:val="left" />
</w:tabs>
<w:spacing w:after="0" w:before="120" />
<w:ind w:end="907" w:hanging="360" w:start="907" />
<w:jc w:val="both" />
</w:pPr>
<w:bookmarkStart w:id="1" w:name="GIVES" />
<w:r>
<w:t>To be inserted Next Bullet</w:t>
</w:r>
<w:bookmarkEnd w:id="1" />
<w:r>
<w:rPr>
<w:rFonts w:eastAsia="Times New Roman" />
<w:color w:val="000000" />
<w:lang w:eastAsia="en-US" />
</w:rPr>
</w:r>
</w:p>
Các thẻ chìa khóa đang có và và tôi không siêu quen thuộc với những ý nghĩa XML của thẻ, nhưng nếu bạn giải nén bất kỳ docx và nhìn vào document.xml (sau khi định dạng nó với gọn gàng, tất nhiên) bạn có thể thấy sự khác biệt giữa các đoạn có và không có đánh số. Vì vậy, một khi bạn có một bản sao của thẻ của bạn, bạn có thể đi qua nút với DOM để có được và thay thế giá trị nút với những gì bạn muốn, hoặc bạn có thể sử dụng xpath để tìm nút (w: r/w. : t). Bạn cần phải thiết lập một NamespaceContext và cung cấp cho nó mã thích hợp để hiểu được w: prefix
NodeList nl;
XPath xp = XPathFactory.newInstance().newXPath();
NamespaceContext nsContext = new NamespaceContext(){
@Override public String getNamespaceURI(String prefix) {
if (prefix.equals("w")) {
return "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
}
return null;
}
@Override public String getPrefix(String namespaceURI) {
return null;
}
@Override public Iterator<?> getPrefixes(String namespaceURI) {
return Collections.emptyList()
.iterator();
}
};
xp.setNamespaceContext(nsContext);
nl = (NodeList) xp.evaluate("w:r/w:t", copy, XPathConstants.NODESET);
Bây giờ, đi qua NodeList, setNodeValue ("Hello World"). Bạn có thể thực hiện việc này sau khi nhân bản và thực hiện: paragraph.getParentNode().insertBefore(bkmk, paragraph);
để nhận được nhiều dấu đầu dòng tùy thích. Nếu bạn làm
`paragraph.getParentNode().append(bkmk)`
điểm bullet mới của bạn sẽ nằm ở cuối tài liệu!
Vì vậy, bạn phải thực hiện insertBefore (đây là thao tác nút dom duy nhất có sẵn ngoài nối thêm). Điều này khiến bạn với điểm đạn trống ban đầu của bạn ở cuối cùng, với dấu trang trong đó. Bạn cần xóa dấu trang bằng paragraph.getParentNode(). RemoveChild (đoạn);
Sau đó lưu tệp của bạn bằng POI.
Về cơ bản, POI không hỗ trợ danh sách dấu đầu dòng vì OOXML không thực sự hỗ trợ danh sách dấu đầu dòng. Danh sách dấu đầu dòng chỉ là một đoạn văn với các thẻ đánh số là trẻ em.Tuy nhiên, với POI bạn luôn có thể rơi xuống thao tác DOM cơ bản và bạn có thể kiểm tra DOM bằng cách giải nén và gọn gàng.
- 1. cách thêm ảnh vào tài liệu .docx với Apache POI XWPF trong java
- 2. Lấy danh sách POI từ API Google Địa điểm
- 3. Giới hạn khi tạo danh sách thả xuống excel với Apache POI
- 4. Tạo cột chỉ đọc bằng apache poi
- 5. Danh sách thả xuống Excel sử dụng Apache POI
- 6. Chữ ký đầu trang không hợp lệ; IOException với Apache POI trên tài liệu excel
- 7. Làm mới Bảng Pivot với Apache POI
- 8. Nhập dữ liệu CSV với Apache POI
- 9. Tạo biểu đồ excel bằng cách sử dụng Apache POI
- 10. Tạo và thay đổi bảng Excel bằng Apache POI
- 11. Mã nguồn trong Danh sách Bullet với reStructuredText
- 12. API tự tạo tài liệu được tạo trên Django-Tastypie
- 13. java.lang.OutOfMemoryError: Vùng heap Java khi đọc excel với Apache POI
- 14. Apache POI dữ liệu ngoại tệ Format
- 15. Chỉnh sửa các tệp excel hiện có bằng cách sử dụng jxl api/Apache POI
- 16. "Khởi tạo" một Danh sách bằng Java?
- 17. Tài liệu Apache MINA Vysper?
- 18. Chuyển csv sang xls/xlsx bằng Apache poi?
- 19. Cách lập trình thêm danh sách bullet vào NSTextView
- 20. Sử dụng Apache Poi để phân tích bảng trong bảng trong tài liệu word
- 21. Đọc từ tệp excel .xlsx bằng cách sử dụng java Apache POI 3.9 Eclipse
- 22. Tạo tài liệu REST API
- 23. Apache POI XSSFColor từ mã hex
- 24. cách tạo tài liệu api
- 25. API Java cho dữ liệu tài chính
- 26. Tạo tài liệu từ bằng PHP
- 27. Có giới hạn sử dụng API opencsv hoặc Apache Poi Api không?
- 28. Thư viện Java để tạo dữ liệu TomTom GPS poi
- 29. Số hàng POI Apache số
- 30. Sao chép Bảng Excel bằng cách sử dụng Apache POI