qué que formato extensiones descargar como cambiar archivo abrir java ms-word apache-poi background-color

que - ¿Cómo establecer el color de fondo(Color de página) para el documento de Word(.doc o.docx) en Java?



que es un archivo docx (2)

Actualización: XWPF es la forma más nueva de crear archivos de documentos de Word, pero solo se puede establecer el fondo mediante HWPF, que es para una versión de formato anterior (.doc)

Para * .doc (es decir, el componente HWPF de POI):

  1. Resaltado de texto: mira en setHighlighted()

  2. Color de fondo:

    Supongo que te refieres al fondo de un párrafo (AFAIK, Word también permite colorear toda la página, que es un asunto diferente)

    Hay setShading() que le permite proporcionar un color de primer plano y de fondo (a través de setCvFore() y setCvBack() de SHDAbstractType ) para un párrafo. IIRC, es el primer plano que le gustaría establecer para colorear su Párrafo. El fondo solo es relevante para sombreados que están compuestos por dos colores (alternos).

    La estructura de datos subyacente se llama Shd80 ([MS-DOC], 2.9.248). También hay SHDOperand ([MS-DOC], 2.9.249) que refleja la funcionalidad de Word antes de Word97. [MS-DOC] es la especificación de formato de archivo de Word Binario que está disponible gratuitamente en MSDN.

Editar:

Aquí hay un código para ilustrar lo anterior:

try { HWPFDocument document = [...]; // comes from somewhere Range range = document.getRange(); // Background shading of a paragraph ParagraphProperties pprops = new ParagraphProperties(); ShadingDescriptor shd = new ShadingDescriptor(); shd.setCvFore(Colorref.valueOfIco(0x07)); // yellow; ICO shd.setIpat(0x0001); // solid background; IPAT pprops.setShading(shd); Paragraph p1 = range.insertBefore(pprops, StyleSheet.NIL_STYLE); p1.insertBefore("shaded paragraph"); // Highlighting of individual characters Paragraph p2 = range.insertBefore(new ParagraphProperties(), StyleSheet.NIL_STYLE); CharacterRun cr = p2.insertBefore("highlighted text/r"); cr.setHighlighted((byte) 0x06); // red; ICO document.write([...]); // document goes to somewhere } catch (IOException e) { e.printStackTrace(); }

  • ICO es una estructura de color
  • IPAT es una lista de estilos de sombreado predefinidos

En algunas bibliotecas, como http://poi.apache.org , pudimos crear un documento de Word con cualquier color de texto, pero para el fondo o resaltar el texto, no encontré ninguna solución.

¡Color de página por palabra en forma manual !:

https://support.office.com/en-us/article/Change-the-background-or-color-of-a-document-6ce0b23e-b833-4421-b8c3-b3d637e62524

Aquí está mi código principal para crear un documento de Word por poi.apache

// Blank Document @SuppressWarnings("resource") XWPFDocument document = new XWPFDocument(); // Write the Document in file system FileOutputStream out = new FileOutputStream(new File(file_address)); // create Paragraph XWPFParagraph paragraph = document.createParagraph(); paragraph.setAlignment(ParagraphAlignment.RIGHT); XWPFRun run = paragraph.createRun(); run.setFontFamily(font_name); run.setFontSize(font_size); // This only set text color not background! run.setColor(hex_color); for (String s : text_array) { run.setText(s); run.addCarriageReturn(); } document.write(out); out.close();


Solo necesitamos agregar estas 3 líneas para establecer el color de fondo para documentos de Word por XWPF. Tenemos que establecer estas líneas después de declarar XWPFRun y ​​su color de texto:

CTShd cTShd = run.getCTR().addNewRPr().addNewShd(); cTShd.setVal(STShd.CLEAR); cTShd.setFill(hex_background_color);