? Estoy tratando de crear la palabra documento utilizando HWPFDocument. Puedo crear el documento con alguna característica pero no puedo obtener algunas cosas. Mi problema es simple, pero no puedo descifrar algunas cosas. Quiero convertir este sencillo HTML en WordDoc creado:¿Hay alguna manera de mostrar saltos de línea, lista de pedidos con 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>
Aquí estoy capaz de convertir el texto en negrita y cursiva. Pero no puede averiguar cómo crear el
1) <ul><li>....
2) <ol><li>...
3) break <br>
4) <pre>
etiquetas en el WordDoc.
¿Hay algún ejemplo para hacer esto, entonces por favor hágamelo saber Realmente aprecio el esfuerzo, gracias de antemano.
Editado:
librería incluida:
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"
Y este es el código principal para convertir el HTML al doc como:
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
Esperamos que esto ayude a entender.
puede mostrar cómo se puede convertir html a doc? ¿O estás tratando de escribir tal convertidor? –
Estoy tratando de convertir usando ApachePOI y jRuby. Por favor revisa mi sección de edición. – Vik
Nikita: ¿Tiene alguna solución para esto? – Vik