Crear un archivo de OneNote en C# 2

Aspose.Note for .NET es una API de manipulación de documentos de OneNote rica en funciones que le permite crear, leer y convertir documentos de OneNote mediante programación usando C# o VB.NET. En un artículo anterior, cubrimos cómo usar Aspose.Note for .NET para convertir, leer y analizar documentos de OneNote. Hoy veremos cómo crear documentos de OneNote desde cero usando C#.

MS OneNote le proporciona una forma de organizar y administrar la información en forma de notas digitales (.ONE). Las páginas de los documentos de OneNote se utilizan para contener el contenido definido por el usuario, que puede consistir en texto, tablas, imágenes, listas, etc. En este artículo, cubriremos todos los aspectos básicos de la creación de páginas y su contenido en documentos de OneNote. .

Cree un documento de OneNote (.ONE) usando C#

Comencemos por crear un documento de OneNote vacío con solo un título de página. Los siguientes son los pasos para crear el documento de OneNote con una página vacía y guardarlo como un archivo .one.

  • Cree una instancia de la clase Documento.
  • Cree una nueva página inicializando el objeto Página con el objeto de la clase Documento.
  • Establece el título de la página usando la propiedad Page.Title.
  • Llame al método Document.AppendChild() y pase el objeto Page.
  • Finalmente, guarde el documento de OneNote usando el método Document.Save().

El siguiente ejemplo de código muestra cómo crear un documento de OneNote vacío con C#.

// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

// Crear un objeto de la clase Documento
Document doc = new Aspose.Note.Document();
// Inicializar objeto de clase de página
Aspose.Note.Page page = new Aspose.Note.Page(doc);

// Estilo predeterminado para todo el texto del documento.
ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
// Establecer propiedades de título de página
page.Title = new Title(doc)
{
    TitleText = new RichText(doc) { Text = "Title text.", ParagraphStyle = textStyle },
    TitleDate = new RichText(doc) { Text = new DateTime(2011, 11, 11).ToString("D", CultureInfo.InvariantCulture), ParagraphStyle = textStyle },
    TitleTime = new RichText(doc) { Text = "12:34", ParagraphStyle = textStyle }
};
// Agregar nodo de página en el documento
doc.AppendChildLast(page);

dataDir = dataDir + "CreateDocWithPageTitle_out.one";
// Guardar documento de OneNote
doc.Save(dataDir);

Agregar páginas al documento de OneNote usando C#

En esta sección, iremos un paso adelante y agregaremos texto a la página en el documento de OneNote. Una página en el documento de OneNote puede ser la página principal o una subpágina. Por ejemplo, está creando un informe anual que contiene además las subsecciones de los informes mensuales. En tal caso, puede colocar la descripción del informe en la página principal y los informes mensuales en las subpáginas. En el documento de OneNote, esto se puede manejar usando los niveles de página.

Los siguientes son los pasos para crear páginas en un documento de OneNote.

  • Cree un nuevo documento de OneNote usando la clase Documento.
  • Cree nuevas páginas para el documento y establezca su nivel usando la clase Página.
  • Utilice las clases Outline y OutlineElement para crear notas.
  • Agrega notas a las páginas usando el método Page.AppendChildLast().
  • Agregue páginas al documento de OneNote usando el método Document.AppendChildLast().
  • Guarde el documento usando el método Document.Save().

El siguiente ejemplo de código muestra cómo crear y agregar páginas a documentos de OneNote mediante C#.

// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_Pages();

// Crear un objeto de la clase Documento
Document doc = new Document();
// Inicialice el objeto de la clase Page y establezca su nivel
Aspose.Note.Page page1 = new Aspose.Note.Page(doc) { Level = 1 };
// Inicialice el objeto de la clase Page y establezca su nivel
Aspose.Note.Page page2 = new Aspose.Note.Page(doc) { Level = 2 };
// Inicialice el objeto de la clase Page y establezca su nivel
Aspose.Note.Page page3 = new Aspose.Note.Page(doc) { Level = 1 };

/*---------- Adding nodes to first Page ----------*/
Outline outline = new Outline(doc);
OutlineElement outlineElem = new OutlineElement(doc);
ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
RichText text = new RichText(doc) { Text = "First page.", ParagraphStyle = textStyle };
outlineElem.AppendChildLast(text);
outline.AppendChildLast(outlineElem);
page1.AppendChildLast(outline);

/*---------- Adding nodes to second Page ----------*/
var outline2 = new Outline(doc);
var outlineElem2 = new OutlineElement(doc);
var textStyle2 = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
var text2 = new RichText(doc) { Text = "Second page.", ParagraphStyle = textStyle2 };
outlineElem2.AppendChildLast(text2);
outline2.AppendChildLast(outlineElem2);
page2.AppendChildLast(outline2);

/*---------- Adding nodes to third Page ----------*/
var outline3 = new Outline(doc);
var outlineElem3 = new OutlineElement(doc);
var textStyle3 = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
var text3 = new RichText(doc) { Text = "Third page.", ParagraphStyle = textStyle3 };
outlineElem3.AppendChildLast(text3);
outline3.AppendChildLast(outlineElem3);
page3.AppendChildLast(outline3);

/*---------- Add pages to the OneNote Document ----------*/
doc.AppendChildLast(page1);
doc.AppendChildLast(page2);
doc.AppendChildLast(page3);

dataDir = dataDir + "CreateDocWithRootAndSubPages_out.one";
// Guardar documento de OneNote
doc.Save(dataDir);

Insertar imágenes en un documento de OneNote usando C#

También puede insertar imágenes en las páginas de OneNote. Los siguientes son los pasos para crear un documento de OneNote con imágenes.

  • Cree una instancia de la clase Documento para un nuevo documento de OneNote.
  • Use la clase Page para crear una nueva página para el documento.
  • Cree una nueva instancia de la clase Image e inicialícela con la ruta de la imagen.
  • Agrega una imagen a la página usando el método OutlineElement.AppendChildLast().
  • Agregue una página al documento usando el método Document.AppendChildLast().
  • Guarde el documento de OneNote.

El siguiente ejemplo de código muestra cómo insertar imágenes en el documento de OneNote mediante C#.

// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_Images();

// Crear un objeto de la clase Documento
Document doc = new Document();
// Inicializar objeto de clase de página
Aspose.Note.Page page = new Aspose.Note.Page(doc);
// Inicialice el objeto de la clase Esquema y establezca las propiedades de compensación
Outline outline = new Outline(doc) { VerticalOffset = 0, HorizontalOffset = 0 };
// Inicializar el objeto de la clase OutlineElement
OutlineElement outlineElem = new OutlineElement(doc);
// Cargue una imagen por la ruta del archivo.
Aspose.Note.Image image = new Aspose.Note.Image(doc, dataDir + "image.jpg");
// Establecer la alineación de la imagen
image.Alignment = HorizontalAlignment.Right;
// Añadir imagen
outlineElem.AppendChildLast(image);
// Agregar elementos de contorno
outline.AppendChildLast(outlineElem);
// Agregar nodo de contorno
page.AppendChildLast(outline);
// Agregar nodo de página
doc.AppendChildLast(page);

dataDir = dataDir + "BuildDocAndInsertImage_out.one";
// Guardar documento de OneNote
doc.Save(dataDir);

Agregar tablas al documento de OneNote usando C#

Las tablas son una buena manera de organizar y resumir los datos en forma de filas y columnas. Junto con una organización eficiente, las tablas le permiten ubicar los datos deseados rápidamente. Los documentos de OneNote también admiten tablas. Los siguientes son los pasos para agregar tablas en documentos de OneNote.

  • Cree un nuevo documento de OneNote usando la clase Documento.
  • Cree una nueva página usando la clase Page.
  • Agregue una nueva fila de tabla y celdas de tabla usando las clases TableRow y TableCell respectivamente.
  • Inserte elementos en las celdas de la tabla usando el método TableCell.AppendChildLast.
  • Agregue celdas a la fila de la tabla usando el método TableRow.AppendChildLast().
  • Cree una instancia de la clase Tabla y agréguele una fila de tabla.
  • Agregue la tabla a la página usando las clases OutlineElement y Outline.
  • Agregue una página al documento y guárdelo usando el método Document.Save().

El siguiente ejemplo de código muestra cómo agregar una tabla al documento de OneNote mediante C#.

// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_Tables();

// Crear un objeto de la clase Documento
Document doc = new Document();
// Inicializar objeto de clase de página
Aspose.Note.Page page = new Aspose.Note.Page(doc);

// Inicializar objeto de clase TableRow
TableRow row1 = new TableRow(doc);
// Inicializar objetos de clase TableCell
TableCell cell11 = new TableCell(doc);
TableCell cell12 = new TableCell(doc);
TableCell cell13 = new TableCell(doc);

// Agregar elementos de esquema en la celda de la tabla
cell11.AppendChildLast(GetOutlineElementWithText(doc, "cell_1.1"));
cell12.AppendChildLast(GetOutlineElementWithText(doc, "cell_1.2"));
cell13.AppendChildLast(GetOutlineElementWithText(doc, "cell_1.3"));
// Tabla de celdas a filas
row1.AppendChildLast(cell11);
row1.AppendChildLast(cell12);
row1.AppendChildLast(cell13);

// Inicializar objeto de clase TableRow
TableRow row2 = new TableRow(doc);
// inicializar objetos de clase TableCell
TableCell cell21 = new TableCell(doc);
TableCell cell22 = new TableCell(doc);
TableCell cell23 = new TableCell(doc);

// Agregar elementos de esquema en la celda de la tabla
cell21.AppendChildLast(GetOutlineElementWithText(doc, "cell_2.1"));
cell22.AppendChildLast(GetOutlineElementWithText(doc, "cell_2.2"));
cell23.AppendChildLast(GetOutlineElementWithText(doc, "cell_2.3"));

// Agregar celdas de tabla a filas
row2.AppendChildLast(cell21);
row2.AppendChildLast(cell22);
row2.AppendChildLast(cell23);

// Inicialice el objeto de clase Table y establezca anchos de columna
Table table = new Table(doc)
{
    IsBordersVisible = true,
    Columns = { new TableColumn { Width = 200 }, new TableColumn { Width = 200 }, new TableColumn { Width = 200 } }
};
// Agregar filas de tabla a la tabla
table.AppendChildLast(row1);
table.AppendChildLast(row2);

// Inicializar objeto de contorno
Outline outline = new Outline(doc);
// Inicializar objeto OutlineElement
OutlineElement outlineElem = new OutlineElement(doc);
// Agregar tabla al nodo de elemento de esquema
outlineElem.AppendChildLast(table);
// Agregar elemento de contorno al contorno
outline.AppendChildLast(outlineElem);
// Agregar esquema al nodo de página
page.AppendChildLast(outline);
// Agregar página al nodo del documento
doc.AppendChildLast(page);
dataDir = dataDir + "InsertTable_out.one";
doc.Save(dataDir);

Insertar etiquetas en el documento de OneNote usando C#

Las etiquetas se utilizan para categorizar o priorizar las notas en los documentos de OneNote. Puede aplicar etiquetas al texto o párrafo para encontrar o filtrar rápidamente las notas relacionadas. Los siguientes son los pasos para crear y agregar etiquetas en documentos de OneNote.

  • Cree una instancia de la clase Documento.
  • Cree una nueva página usando la clase Page.
  • Inicialice los objetos Outline y OutlineElement.
  • Cree un nuevo objeto RichText y establezca su texto y otras propiedades.
  • Agregue una etiqueta al texto usando el método RichText.Tags.Add().
  • Agregar texto a la página.
  • Agregue una página al documento de OneNote y guárdelo.

El siguiente ejemplo de código muestra cómo agregar etiquetas al texto en documentos de OneNote usando C#.

// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_Tags();

// Crear un objeto de la clase Documento
Document doc = new Document();
// Inicializar objeto de clase de página
Aspose.Note.Page page = new Aspose.Note.Page(doc);
// Inicializar objeto de clase de esquema
Outline outline = new Outline(doc);
// Inicializar el objeto de la clase OutlineElement
OutlineElement outlineElem = new OutlineElement(doc);
ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
RichText text = new RichText(doc) { Text = "OneNote text.", ParagraphStyle = textStyle };
text.Tags.Add(new NoteTag
{
    Icon = TagIcon.YellowStar,
});

// Agregar nodo de texto
outlineElem.AppendChildLast(text);
// Agregar nodo de elemento de esquema
outline.AppendChildLast(outlineElem);
// Agregar nodo de esquema
page.AppendChildLast(outline);
// Agregar nodo de página
doc.AppendChildLast(page);

dataDir = dataDir + "AddTextNodeWithTag_out.one";
// Guardar documento de OneNote
doc.Save(dataDir);

Por último, pero no menos importante, veamos cómo insertar hipervínculos a los documentos de OneNote siguiendo los siguientes pasos.

  • Cree una instancia de la clase Documento.
  • Cree una nueva página para el documento usando la clase Page.
  • Establezca el estilo de texto del hipervínculo y su URL mediante la clase TextStyle.
  • Cree una instancia de la clase RichText, agregue su texto e inicialícelo con el estilo de texto creado previamente para el hipervínculo.
  • Agregue texto a la página del documento de OneNote.
  • Guarde el documento como archivo .one.

El siguiente ejemplo de código muestra cómo insertar un hipervínculo al documento de OneNote mediante C#.

// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_Tasks();

// Crear un objeto de la clase Documento
Document doc = new Document();
// Inicializar objeto de clase de página
Aspose.Note.Page page = new Aspose.Note.Page(doc);
// Inicializar objeto de clase de título
Title title = new Title(doc);

ParagraphStyle defaultTextStyle = new ParagraphStyle
{
    FontName = "Arial",
    FontSize = 10,
    FontColor = SystemColors.WindowText
};
RichText titleText = new RichText(doc)
{
    Text = "Title!",
    ParagraphStyle = defaultTextStyle
};
Outline outline = new Outline(doc)
{
    MaxWidth = 200,
    MaxHeight = 200,
    VerticalOffset = 100,
    HorizontalOffset = 100
};
OutlineElement outlineElem = new OutlineElement(doc);
TextStyle textStyleRed = new TextStyle
{
    FontColor = Color.Red,
    FontName = "Arial",
    FontSize = 10,
    RunIndex = 8//this style will be applied to 0-7 characters.
};
TextStyle textStyleHyperlink = new TextStyle
{
    RunIndex = 17,//this style will be applied to 8-16 characters.
    IsHyperlink = true,
    HyperlinkAddress = "www.google.com"
};
RichText text = new RichText(doc)
{
    Text = "This is hyperlink. This text is not a hyperlink.",
    ParagraphStyle = defaultTextStyle,
    Styles = { textStyleRed, textStyleHyperlink }
};

title.TitleText = titleText;
page.Title = title;
outlineElem.AppendChildLast(text);
// Agregar elementos de contorno
outline.AppendChildLast(outlineElem);
// Agregar nodo de contorno
page.AppendChildLast(outline);
// Agregar nodo de página
doc.AppendChildLast(page);

dataDir = dataDir + "AddHyperlink_out.one";
// Guardar documento de OneNote
doc.Save(dataDir);

Conclusión

En este artículo, ha aprendido a crear documentos de OneNote (.ONE) desde cero con C#. Además, el artículo también cubrió cómo insertar páginas, imágenes, tablas, etiquetas e hipervínculos a los documentos de OneNote mediante programación. Puede explorar otras funciones interesantes de Aspose.Note for .NET utilizando la documentación.

Artículos relacionados