none
Crear un documento word sin abrir word RRS feed

  • Pregunta

  • Hola, tengo una aplicacion web que manda un mail con un .pdf adjunto. Para crear este .pdf, tengo un documento word creado y lo unico que hago es pasarle unos datos mas, y luego lo convierto a .pdf.

    El problema que tengo es que cuando creo el documento word, para hacer esto se abre el word(2007) y esta aplicacion la va a usar mucha gente al mismo tiempo y eso es un problema...porque no se puede estar abriendo el word todo el tiempo en el server.

    Hay alguna manera de modificar mi documento word sin que se abra el word?? O de ultima algun codigo con el que pueda crear el documento por codigo??

    Aclaro que al documento no lo creo directamente en .pdf porque necesito darle un formato al documento, que solo puedo hacerlo con word, por ejemplo ponerle un marco de colores al documento, ya que es una especie de diploma.

     

    Gracias!!

    lunes, 12 de noviembre de 2007 13:37

Respuestas

  • He hecho un ejemplo eliminando el "activate" y me ha funcionado correctamente sin mostrar el Word, aunque en la máquina que he probado no tengo el 2007.

     

    Te dejo el código de mi prueba:

     

    Bloque de código

    Word.ApplicationClass WordApp = new Word.ApplicationClass();

    object missing = System.Reflection.Missing.Value;

    object templateName = "NORMAL.DOT";

    object newTemplate = false;

    object docType = 0;

    object isVisible = false;

    object FileName = "C:\\TEST\\NUEVO.DOC";

    object FileFormat = Word.WdSaveFormat.wdFormatRTF;

    object LockComments = false;

    object AddToRecentFiles = true;

    object ReadOnlyRecommended = false;

    object EmbedTrueTypeFonts = false;

    object SaveNativePictureFormat = true;

    object SaveFormsData = true;

    object SaveAsAOCELetter = false;

    Word.Document aDoc = WordApp.Documents.Add(ref templateName, ref newTemplate, ref docType, ref isVisible);

    aDoc.SaveAs(ref FileName, ref FileFormat, ref LockComments,

    ref missing, ref AddToRecentFiles, ref missing,

    ref ReadOnlyRecommended, ref EmbedTrueTypeFonts,

    ref SaveNativePictureFormat, ref SaveFormsData,

    ref SaveAsAOCELetter);

    MessageBox.Show("OK");

     

     

    Espero que te sirva.

     

    Salud y suerte!

    lunes, 12 de noviembre de 2007 14:52
    Moderador

Todas las respuestas

  • Mira el siguiente artículo:

    http://www.c-sharpcorner.com/UploadFile/mgold/CreatingandOpeningMicrosoftDocumentfrom.NETUsingCSharp11262005050939AM/CreatingandOpeningMicrosoftDocumentfrom.NETUsingCSharp.aspx

     

    En el ejemplo titulado:

    Below is the code for creating a document from scratch

     

    Con poner los visibles a 'false' debería ser suficiente.

     

    Salud y suerte!

     

    lunes, 12 de noviembre de 2007 13:58
    Moderador
  • Si, ya vi ese articulo, es mas, es el que use como ejemplo, pero aunque cambie el visible a 'false' el word se sigue ejecutando

     

    lunes, 12 de noviembre de 2007 14:02
  • He hecho un ejemplo eliminando el "activate" y me ha funcionado correctamente sin mostrar el Word, aunque en la máquina que he probado no tengo el 2007.

     

    Te dejo el código de mi prueba:

     

    Bloque de código

    Word.ApplicationClass WordApp = new Word.ApplicationClass();

    object missing = System.Reflection.Missing.Value;

    object templateName = "NORMAL.DOT";

    object newTemplate = false;

    object docType = 0;

    object isVisible = false;

    object FileName = "C:\\TEST\\NUEVO.DOC";

    object FileFormat = Word.WdSaveFormat.wdFormatRTF;

    object LockComments = false;

    object AddToRecentFiles = true;

    object ReadOnlyRecommended = false;

    object EmbedTrueTypeFonts = false;

    object SaveNativePictureFormat = true;

    object SaveFormsData = true;

    object SaveAsAOCELetter = false;

    Word.Document aDoc = WordApp.Documents.Add(ref templateName, ref newTemplate, ref docType, ref isVisible);

    aDoc.SaveAs(ref FileName, ref FileFormat, ref LockComments,

    ref missing, ref AddToRecentFiles, ref missing,

    ref ReadOnlyRecommended, ref EmbedTrueTypeFonts,

    ref SaveNativePictureFormat, ref SaveFormsData,

    ref SaveAsAOCELetter);

    MessageBox.Show("OK");

     

     

    Espero que te sirva.

     

    Salud y suerte!

    lunes, 12 de noviembre de 2007 14:52
    Moderador
  • Eso es lo que estaba buscando, gracias!!!!

    lunes, 12 de noviembre de 2007 15:02
  • Un placer! ;-)

     

    Aunque recuerda cerrar y liberar la variable de documento, sinó te pueden quedar un montón de WinWord.exe's en memoria ocultos.

     

    lunes, 12 de noviembre de 2007 15:06
    Moderador