none
Dar formato de negrita a una parte de un parrafo RRS feed

  • Pregunta

  • Hola. Tengo que crear notas desde C#2010 en un documento word con varios formatos en un solo parrafo. dejo una parte de la nota. lo que está entre corchetes "[]" son variables.

    N°: [Id (de autorizacion)]  DP/ [Año]                   Resistencia, [FechaEmision]  
    AL SEÑOR: 
    [Oficina]
                                                            Tengo el agrado de dirigirme a Ud.,...   
    del  personal  administrativo  con  revista  en  esa Unidad, especificándose la antigüedad 
    computable al [FechaTope] y el término  en  días  corridos  conforme a los lineamientos fijados 
    en el Artículo 8 de la Ley Nº: 3521 TV, que se le concede como Licencia Ordinaria Anual Año 
    [EjercicioLA]. Para la notificación...

    Tengo el objeto parrafo "p" creado así: 

    object oEndOfDoc = "\\endofdoc";
    Paragraph p = Doc.Content.Paragraphs.Add(oEndOfDoc);

    A "p" tengo que asignarle el texto de arriba. En la primera linea el texto está alineado a la izquierda, pero parte de el (Resistencia,...) debe situarse un poco desplazado a la derecha, unos 12 cm ¿como hago esto?

    La 2da y 3ra lineas están alineadas a la izquierda, no hay problemas allí. Pero el siguiente bloque, el que empieza con "Tengo el agrado ..." tiene una sangría en la primera linea, todo este bloque va con alineación justificada y va en negrita la parte: "Licencia Ordinaria Anual Año [EjercicioLA].".

    Todo lo debo hacer por codigo porque la cantidad de notas que hay que generar es muy variable( desde 1 a 250 aprox.) y para cada nota se repite lo que puse arriba, sólo cambia lo que está entre corchete. Además no se exactamente cuantas paginas ocupará cada nota (porque a eso hay que agregar una tabla con la lista de empleados de esa oficina), la mayoríade la notas ocupan una sola pagina, pero otras ocupan 2 o 3 pag.

    Agradezco cualquier ayuda desde ya.

    Saludos.


    • Editado Anti_Work domingo, 12 de enero de 2014 13:52
    domingo, 12 de enero de 2014 13:48

Todas las respuestas

  • Ya pude solucionar casi todo. Les dejo el codigo:

      string Nro = "\nN°: " + datos["Id"].ToString() + " DP/ " + datos["Año"].ToString();
           Nro += "\tResistencia, " + datos["FechaEmision"].ToString("dd 'de' MMMM 'de' yyy", CultureInfo.CreateSpecificCulture("es-AR")));
           Nro += "\nAL SEÑOR:\n";
           Nro += datos["Oficina"].ToString();
      Range rg = Pfo.Range;
      rg.SetRange(rg.Start, rg.Start);
      rg.Paragraphs.TabStops.Add(280, WdTabAlignment.wdAlignTabLeft);
      rg.Text = Nro;
      Pfo.Range.InsertParagraphAfter();
    
      Paragraph p = Doc.Content.Paragraphs.Add();
      Range r = p.Range;
      r.SetRange(r.Start, r.Start);
      r.Paragraphs.TabStops.Add(280, WdTabAlignment.wdAlignTabLeft);
      r.Text = "\tTengo el agrado de dirigirme a Ud.,  a fin de llevar a su conocimiento nómina del personal administrativo con revista en esa Unidad, especificándose la antigüedad computable al "
       + datos["FechaTope"].ToString("dd/MM/yyy") + " y el término en días corridos conforme a los lineamientos fijados en el Artículo 8 de la Ley Nº: 3521 TV, que se le concede como Licencia Ordinaria Anual Año " + datos["EjercicioLA"].ToString() + ". Para la notificación respectiva se extraerá testimonio o fotocopia certificada, organizando el expediente individualmente, efectuando las comunicaciones de estilo de notificación, interrupción y finalización; derivándose lo actuado a esta instancia para su incorporación en el Legajo respectivo. En caso de que el Agente cambie de destino de revista, sin usufructuar la licencia concedida, fotocopia certificada de la presente será remitida formalmente a la nueva Dependencia.";
    
    //Poner en negrita: "Licencia Ordinaria Anual Año " + datos["EjercicioLA"] +"."
          for (int i = 0; i < 6; i++)
            r.Words[r.Words.Count - 78 + i].Font.Bold = 1;
          r.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphJustify;
          p.Range.InsertParagraphAfter();

    Un problemita que no le encontré la vuelta es que se inserta lineas vacías al final. Tampoco pude solucionar la sangría de primera linea, así que me tuve que conformar con un Tabstop.

    Saludos


    • Editado AntiWork miércoles, 15 de enero de 2014 13:27
    miércoles, 15 de enero de 2014 13:26