Tôi đang cố gắng tạo tài liệu từ bằng cách sử dụng HWPFDocument. Tôi có thể tạo tài liệu với một số tính năng nhưng không thể nhận được vài thứ. Vấn đề của tôi rất đơn giản nhưng tôi không thể tìm ra vài điều. Tôi muốn chuyển đổi HTML đơn giản này vào worddoc tạo:Có cách nào để hiển thị ngắt dòng, danh sách đơn đặt hàng có sử dụng HWPFDocument
<div xmlns="http://www.w3.org/1999/xhtml" class="formatted_content">
<strong>cloudHQ.tester.4</strong> –
this is the bold text
<br/>
this is italic text
<br/>
<ul>
<li>bullets 1</li>
<li>bullets 2</li>
<li>bullets 3</li>
</ul>
<br/>
<ol>
<li>Number1</li>
<li>Number2</li>
<li>Number3</li>
</ol>
<br/>
<pre>this is simple quote</pre>
<br>
this is simple quote
</div>
Ở đây tôi có thể chuyển đổi văn bản in đậm và in nghiêng. Nhưng không thể tìm ra cách tạo ra các thẻ
1) <ul><li>....
2) <ol><li>...
3) break <br>
4) <pre>
vào WordDoc.
Có bất kỳ ví dụ nào để thực hiện việc này không, vui lòng cho tôi biết Tôi thực sự đánh giá cao những nỗ lực, cảm ơn trước.
được sửa đổi:
bao gồm thư viện:
include_class "org.apache.poi.poifs.filesystem.POIFSFileSystem"
include_class "org.apache.poi.hwpf.usermodel.ParagraphProperties"
include_class "org.apache.poi.hwpf.usermodel.CharacterRun"
include_class "org.apache.poi.hwpf.usermodel.CharacterProperties"
Và đây là mã chính để chuyển đổi html để doc như:
def convert_from_html_to_doc(html_file_name, comment_files)
puts("Script start.....")
puts("Parsing document comments start.....NEW")
default_file = "misc/poi_experiment/empty.doc"
fs = JavaPoi::POIFSFileSystem.new(JavaPoi::FileInputStream.new(default_file))
# Horrible word Document Format
hwpfDocument = JavaPoi::HWPFDocument.new(fs)
# range is used for getting the range of the document except header and footer
range = hwpfDocument.getRange()
par1 = range.insertAfter(JavaPoi::ParagraphProperties.new(), 0)
par1.setSpacingAfter(200);
puts("Adding given html content to doc.")
main_html = Nokogiri::HTML(File.read(html_file_name))
characterRun = par1.insertAfter(main_html.text)
# setting the font size
characterRun.setFontSize(2 * 12)
puts("Start procees on comment..... total : #{comment_files.size}")
comment_files.each do |cf|
file_path = "misc/poi_experiment/#{cf}"
puts("The comment file path : #{file_path}")
html = Nokogiri::HTML(File.read(file_path)).css('html')
puts(html)
par = characterRun.insertAfter(JavaPoi::ParagraphProperties.new(), 0)
par.setSpacingAfter(200);
#text = "<b><u>this is bold and underlined text</u></b>"
text = html.to_s.scan(/\D\d*/)
index = 0
currentCharacterRun , currentCharacterStyleList = [], []
character_arr = text.to_s.scan(/\D\d*/)
character_or_tag, index = get_next_character_or_tag(character_arr, index)
while !character_or_tag.nil?
if character_or_tag.is_char?
currentCharacterRun << character_or_tag.get_char
end
if character_or_tag.is_start_tag?
currentCharacterRunText = currentCharacterRun.join
if currentCharacterRunText != ""
characterproperties = JavaPoi::CharacterProperties.new
characterproperties = emit_to_document_and_apply_style(characterproperties, currentCharacterStyleList)
characterRun = par.insertAfter(currentCharacterRunText,characterproperties)
currentCharacterRun = []
end
currentCharacterStyleList << character_or_tag.get_tag
end
if character_or_tag.is_end_tag?
currentCharacterRunText = currentCharacterRun.join
if currentCharacterRunText != ""
characterproperties = JavaPoi::CharacterProperties.new
characterproperties = emit_to_document_and_apply_style(characterproperties, currentCharacterStyleList)
characterRun = par.insertAfter(currentCharacterRunText,characterproperties)
currentCharacterRun = []
end
currentCharacterStyleList.reject! { |x| x == character_or_tag.get_tag.gsub("/","") }
end
character_or_tag, index = get_next_character_or_tag(character_arr, index)
end
end
hwpfDocument.write(JavaPoi::FileOutputStream.new("#{html_file_name}.doc", true))
end
Hy vọng điều này sẽ giúp để hiểu bạn.
bạn có thể chỉ cho làm thế nào để bạn chuyển đổi html để doc? Hoặc bạn đang cố gắng để viết chuyển đổi như vậy? –
Tôi đang cố chuyển đổi bằng ApachePOI và jRuby. Vui lòng kiểm tra phần chỉnh sửa của tôi. – Vik
Nikita: Bạn có giải pháp nào cho việc này không? – Vik