Trabajar con Párrafos

Un párrafo es un conjunto de caracteres combinados en un bloque lógico y terminando con un carácter especial: a paragraph break. En Aspose.Words, un párrafo está representado por la clase Paragraph.

Insertar un Párrafo

De hecho, para insertar un nuevo párrafo en el documento, debe insertar un carácter de salto de párrafo en él. DocumentBuilder.Writeln inserta no solo una cadena de texto en el documento, sino que también agrega un salto de párrafo.

El formato de fuente actual también se especifica mediante la propiedad Font, y el formato de párrafo actual se determina mediante la propiedad ParagraphFormat. En la siguiente sección, entraremos en más detalles sobre el formato de párrafo.

El siguiente ejemplo de código muestra cómo insertar un párrafo en un documento:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Open the document.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Font font = builder.getFont();
font.setSize(16);
font.setColor(Color.DARK_GRAY);
font.setBold(true);
font.setName("Algerian");
font.setUnderline(2);
ParagraphFormat paragraphFormat = builder.getParagraphFormat();
paragraphFormat.setFirstLineIndent(12);
paragraphFormat.setAlignment(1);
paragraphFormat.setKeepTogether(true);
builder.write("This is a sample Paragraph");
doc.save(dataDir + "InsertParagraph_out.doc");

Formato de Párrafo

El formato de párrafo actual está representado por el objeto ParagraphFormat que devuelve la propiedad ParagraphFormat. Este objeto encapsula varias propiedades de formato de párrafo disponibles en Microsoft Word. Puede restablecer fácilmente el formato de un párrafo a su valor predeterminado (estilo normal, alineado a la izquierda, sin sangría, sin espaciado, sin bordes, sin sombreado) llamando a ClearFormatting.

El siguiente ejemplo de código muestra cómo configurar el formato de párrafo:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Open the document.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
ParagraphFormat paragraphFormat = builder.getParagraphFormat();
paragraphFormat.setAlignment(ParagraphAlignment.CENTER);
paragraphFormat.setLeftIndent(50);
paragraphFormat.setRightIndent(50);
paragraphFormat.setSpaceAfter(25);
paragraphFormat.setKeepTogether(true);
builder.writeln(
"I'm a very nice formatted paragraph. I'm intended to demonstrate how the left and right indents affect word wrapping.");
builder.writeln(
"I'm another nice formatted paragraph. I'm intended to demonstrate how the space after paragraph looks like.");
doc.save(dataDir + "SetParagraphFormatting_out.doc");

Aplicar Estilo de Párrafo

Algunos objetos de formato, como Font o ParagraphFormat, admiten estilos. Un único estilo integrado o definido por el usuario se representa mediante un objeto Style que contiene las propiedades de estilo correspondientes, como el nombre, el estilo base, la fuente y el formato de párrafo del estilo,etc.

Además, un objeto Style proporciona la propiedad StyleIdentifier que devuelve un identificador de estilo independiente de la configuración regional representado por un valor de enumeración StyleIdentifier. El punto es que los nombres de los estilos integrados en Microsoft Word están localizados para diferentes idiomas. Con un identificador de estilo, puede encontrar el estilo correcto independientemente del idioma del documento. Los valores de enumeración corresponden a los estilos integrados Microsoft Word, como Normal, Heading 1, Heading 2, etc. A todos los estilos definidos por el usuario se les asigna el StyleIdentifier.User value.

El siguiente ejemplo de código muestra cómo aplicar un estilo de párrafo:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Open the document.
Document doc = new Document();
// Set paragraph style
DocumentBuilder builder = new DocumentBuilder(doc);
builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.TITLE);
builder.write("Hello");
doc.save(dataDir + "ApplyParagraphStyle_out.doc");

Inserte un Separador de Estilos para Colocar Diferentes Estilos de Párrafo

El separador de estilo se puede agregar al final de un párrafo usando el método abreviado de teclado Ctrl + Alt + Enter en MS Word. Esta característica permite utilizar dos estilos de párrafo diferentes en un párrafo impreso lógico. Si desea que aparezca texto desde el principio de un encabezado en particular en una Tabla de Contenido, pero no desea que aparezca todo el encabezado en la Tabla de Contenido, puede usar esta función.

El siguiente ejemplo de código muestra cómo insertar un separador de estilos para acomodar diferentes estilos de párrafo:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Style paraStyle = builder.getDocument().getStyles().add(StyleType.PARAGRAPH, "MyParaStyle");
paraStyle.getFont().setBold(false);
paraStyle.getFont().setSize(8);
paraStyle.getFont().setName("Arial");
// Append text with "Heading 1" style.
builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
builder.write("Heading 1");
builder.insertStyleSeparator();
// Append text with another style.
builder.getParagraphFormat().setStyleName(paraStyle.getName());
builder.write("This is text with some other formatting ");
dataDir = dataDir + "InsertStyleSeparator_out.doc";
doc.save(dataDir);

Aplicar Bordes y Sombreado a un Párrafo

Los bordes en Aspose.Words están representados por la clase BorderCollection: esta es una colección de Border objetos a los que se accede por índice o por tipo de borde. El tipo Border está representado por la enumeración BorderType. Algunos valores de la enumeración son aplicables a varios o solo a un elemento de documento. Por ejemplo, BorderType.Bottom se aplica a un párrafo o celda de tabla, mientras que BorderType.DiagonalDown especifica el borde diagonal solo en una celda de tabla.

Tanto la colección de bordes como cada borde separado tienen atributos similares, como color, estilo de línea, ancho de línea, distancia del texto y sombra opcional. Están representados por propiedades del mismo nombre. Puede lograr diferentes tipos de bordes combinando los valores de las propiedades. Además, los objetos BorderCollection y Border le permiten restablecer estos valores predeterminados llamando al método ClearFormatting.

Aspose.Words también tiene la clase Shading que contiene atributos de sombreado para los elementos del documento. Puede establecer la textura de sombreado deseada y los colores que se aplican al fondo y al primer plano del elemento.

La textura de sombreado se establece con el valor de enumeración TextureIndex que permite la aplicación de varios patrones al objeto Shading. Por ejemplo, para establecer un color de fondo para un elemento de documento, use el valor TextureIndex.TextureSolid y establezca el color de sombreado de primer plano según corresponda. El ejemplo de código que se muestra a continuación muestra cómo aplicar bordes y sombreado a un párrafo.

El siguiente ejemplo de código muestra cómo aplicar bordes y sombreado a un párrafo:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Open the document.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Set paragraph borders
BorderCollection borders = builder.getParagraphFormat().getBorders();
borders.setDistanceFromText(20);
borders.getByBorderType(BorderType.LEFT).setLineStyle(LineStyle.DOUBLE);
borders.getByBorderType(BorderType.RIGHT).setLineStyle(LineStyle.DOUBLE);
borders.getByBorderType(BorderType.TOP).setLineStyle(LineStyle.DOUBLE);
borders.getByBorderType(BorderType.BOTTOM).setLineStyle(LineStyle.DOUBLE);
// Set paragraph shading
Shading shading = builder.getParagraphFormat().getShading();
shading.setTexture(TextureIndex.TEXTURE_DIAGONAL_CROSS);
shading.setBackgroundPatternColor(Color.YELLOW);
shading.setForegroundPatternColor(Color.GREEN);
builder.write("I'm a formatted paragraph with double border and nice shading.");
doc.save(dataDir + "ApplyBordersAndShading_out.doc");