15 messaggi dal 15 maggio 2001
Salve a tutti,
ho necessità di far salvare all'utente un report in rtf. A partire da un template formattato, devo copiarlo (per averne l'intestazione del documento con i loghi del fornitore) e poi modificarlo con dei replace e con l'aggiunta di altro testo.
In asp ci riuscivo benissimo... con asp.net invece, riesco a copiarlo, riesco a scrivere qualcosa da zero, ma se provo ad unire le due cose, mi trasforma il documento in modo tale da non fargli più riconoscere i caratteri...

Potete aiutarmi??? E' URGENTISSIMO!!!

GRAZIE
Elisa

Elisa
426 messaggi dal 17 aprile 2006
io uso un sistema molto più brutale e forse ignobile... ma funziona :)
nel doc originale (il template) metti una stringa tipo @@quicivailcampo1 o simili
poi leggi l'rtf in memoria e fai il replace della stringa es

    private void fnCreateDocument(string sNewNomeFile)
    {
        string BaseFile = Server.MapPath("Allegati/" + sNewNomeFile);
        StreamReader sr = new StreamReader(BaseFile);
        string line = "";
            try
            {
                line = sr.ReadToEnd();

            }
            finally
            {
                sr.Close();
            }
       line = line.Replace("@@quicivailcampo1", "Nuovo Testo");
       outputDoc(line); //faccio l'output a video

    }
    protected void outputDoc(string line)
    {
        Response.Clear();
        Response.Buffer = true;
        Response.ContentType = "application/vnd.ms-word ";
        Response.AddHeader("content-disposition", "attachment; filename=" + sNomeFile);
        Response.Charset = "";
        this.EnableViewState = false;

        System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);

        oHtmlTextWriter.Write(line);// .InnerWriter = line.ToCharArray();
        
        Response.Write(oStringWriter.ToString());
        //Response.Flush();
        ClientScript.RegisterClientScriptBlock(this.GetType(), "close", "window.close();", true);
        Response.End();
    }



Ciao Alessandro

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.