Convertir documentos de Word a PDF con el uso de SharePoint Server 2010 y Word Automation Services (traducción automática)

Importante

Este artículo se ha traducido con traducción automática; vea la declinación de responsabilidades. Para su referencia, puede encontrar la versión en inglés de este artículo aquí.

Ayuda visual de Office

Resumen:   Información para convertir mediante programación documentos de Word al formato PDF en el servidor mediante el uso de Servicios de automatización de Word con SharePoint Server 2010.

Se aplica a: Microsoft SharePoint Server 2010 | Servicios de conectividad empresarial| de Microsoft Visual Studio de Microsoft 2010

Publicada:   Enero de 2010

Proporcionado por:   Caso de Michael, iSoftStone

Introducción

SharePoint 2010 Servicios de automatización de Word disponibles con SharePoint Server 2010 admite convertir documentos de Word a otros formatos. Esto incluye el PDF. En este artículo describe cómo utilizar un receptor de eventos de elemento de documento biblioteca lista para llamar a Servicios de automatización de Word para convertir documentos de Word a PDF cuando se agregan a la lista. Las comprobaciones de receptor de eventos si agrega el elemento de lista es un documento de Word. Si es así, crea un trabajo de conversión para crear una versión PDF del documento Word y empuja hacia el trabajo de conversión a la cola de trabajo de conversión de Servicios de automatización de Word.

Codifíquelo

En este artículo se describe los pasos siguientes para mostrar cómo se llama a la Servicios de automatización de Word para convertir un documento:

  1. Creación de una solución de aplicación de definición de lista de SharePoint 2010 en Visual Studio 2010.

  2. Agregar una referencia al ensamblado Microsoft.Office.Word.Server.

  3. Adición de un receptor de eventos

  4. Agregar el código de ejemplo para la solución.

Crear una aplicación de definición de lista de SharePoint 2010 en 2010 de Visual Studio

En este artículo se utiliza la aplicación de una definición de lista de SharePoint 2010 para el código de ejemplo.

Para crear una aplicación de definición de lista de SharePoint 2010 en 2010 de Visual Studio

  1. Inicie Microsoft Visual Studio 2010 como administrador.

  2. En el menú Archivo , elija el menú Proyecto y, a continuación, haga clic en Nuevo.

  3. En el cuadro de diálogo Nuevo proyecto, seleccione el C# Visual SharePoint 2010 tipo de plantilla en el panel Plantillas de proyecto.

  4. Seleccione la Definición de lista en el panel Plantillas .

  5. El nombre del proyecto y la solución ConvertWordToPDF.



    Figura 1. Creación de la solución

    Creación de la solución

  6. Para crear la solución, haga clic en Aceptar.

  7. Seleccione un sitio que se utilizará para la depuración e implementación.

  8. Seleccione el sitio a utilizar para la depuración y el nivel de confianza para la solución de SharePoint.

    Ff181518.note(es-es,office.14).gifNota:
    Asegúrese de seleccionar el nivel de confianza Implementar como solución de granja de servidores. Si se implementa como un solución de espacio aislado, no funciona debido a que la solución utiliza el ensamblado Microsoft.Office.Word.Server. Este ensamblado no se permite para las llamadas de los llamadores de confianza parcial.



    Figura 2. Si se selecciona el nivel de confianza

    Creación de la solución

  9. Para finalizar la creación de soluciones, haga clic en Finalizar.

Agregar una referencia al ensamblado de servidor de Word Microsoft Office

Para utilizar Servicios de automatización de Word, debe agregar una referencia a la Microsoft.Office.Word.Server a la solución.

Para agregar una referencia al ensamblado de servidor de Microsoft Office Word

  1. En Visual Studio, en el menú Proyecto , seleccione Agregar referencia.

  2. Localizar el ensamblado. En la ficha Examinar, busque el ensamblado. El ensamblado Microsoft.Office.Word.Server se encuentra en la carpeta de la ISAPI de SharePoint 2010. Esto generalmente está ubicada en C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI. Después de que el ensamblado se encuentra, haga clic en Aceptar para agregar la referencia.



    Figura 3. Agregar la referencia

    Adición de la referencia

Adición de un receptor de eventos

Este artículo utiliza un receptor de eventos que utiliza el ensamblado Microsoft.Office.Word.Server para crear trabajos de conversión de documento y agregar a la cola de trabajo de conversión de Servicios de automatización de Word.

Para agregar un receptor de eventos

  1. En Visual Studio, en el menú Proyecto , haga clic en Agregar nuevo elemento.

  2. En el cuadro de diálogo Agregar nuevo elemento, en el panel Plantillas de proyecto , haga clic en la plantilla de SharePoint 2010 Visual C#.

  3. En el panel Plantillas , haga clic en el Receptor de eventos.

  4. Nombre del receptor de eventos ConvertWordToPDFEventReceiver y, a continuación, haga clic en Agregar.



    Figura 4. Adición de un receptor de eventos

    Adición de un receptor de eventos

  5. El receptor de eventos Convierte documentos de Word después de que se agregan a la lista. Seleccione el elemento Se agregó un elemento de la lista de eventos que se puede controlar.



    Figura 5. Elegir opciones de receptor de sucesos

    Selección de configuración del receptor de eventos

  6. Haga clic en Finalizar para agregar el receptor de eventos para el proyecto.

Agregar el código de ejemplo para la solución

Reemplace el contenido del archivo de origen de ConvertWordToPDFEventReceiver.cs con el código siguiente.

using System;
using System.Security.Permissions;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Security;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint.Workflow;

using Microsoft.Office.Word.Server.Conversions;

namespace ConvertWordToPDF.ConvertWordToPDFEventReceiver
{
  /// <summary>
  /// List Item Events
  /// </summary>
  public class ConvertWordToPDFEventReceiver : SPItemEventReceiver
  {
    /// <summary>
    /// An item was added.
    /// </summary>
    public override void ItemAdded(SPItemEventProperties properties)
    {
      base.ItemAdded(properties);

      // Verify the document added is a Word document
      // before starting the conversion.
      if (properties.ListItem.Name.Contains(".docx") 
        || properties.ListItem.Name.Contains(".doc"))
      {
        //Variables used by the sample code.
        ConversionJobSettings jobSettings;
        ConversionJob pdfConversion;
        string wordFile;
        string pdfFile;

        // Initialize the conversion settings.
        jobSettings = new ConversionJobSettings();
        jobSettings.OutputFormat = SaveFormat.PDF;

        // Create the conversion job using the settings.
        pdfConversion = 
          new ConversionJob("Word Automation Services", jobSettings);

        // Set the credentials to use when running the conversion job.
        pdfConversion.UserToken = properties.Web.CurrentUser.UserToken;

        // Set the file names to use for the source Word document
        // and the destination PDF document.
        wordFile = properties.WebUrl + "/" + properties.ListItem.Url;
        if (properties.ListItem.Name.Contains(".docx"))
        {
          pdfFile = wordFile.Replace(".docx", ".pdf");
        }
        else
        {
          pdfFile = wordFile.Replace(".doc", ".pdf");
        }

        // Add the file conversion to the conversion job.
        pdfConversion.AddFile(wordFile, pdfFile);

        // Add the conversion job to the Word Automation Services 
        // conversion job queue. The conversion does not occur
        // immediately but is processed during the next run of
        // the document conversion job.
        pdfConversion.Start();

      }
    }
  }
}

Léalo

Servicios de automatización de Word provistos de SharePoint Server 2010 le permite crear soluciones de documentos basados en servidor. Combina la funcionalidad proporcionada por Servicios de automatización de Word con el contenido proporcionado con el SDK de XML abierto de soporte de manipulación le permite crear soluciones de documentos enriquecidos que se ejecutan en el servidor que no requieren la automatización de la aplicación de cliente de Word de documento.

Ejemplos de los tipos de operaciones admitidas por Servicios de automatización de Word son los siguientes:

  • Conversión entre formatos de documento (por ejemplo, DOC a DOCX)

  • Convertir a formatos fijos (por ejemplo, PDF o XPS)

  • La actualización de campos

  • Importación de "fragmentos de un formato alternativo"

En este artículo contiene código de ejemplo que muestra cómo crear un controlador de eventos de lista de SharePoint que puede crear Servicios de automatización de Word trabajos de conversión en respuesta a los documentos de Word que se agrega a la lista. Esta sección, ejemplos de código tomados desde el código de ejemplo completo y funcional proporcionado anteriormente en este artículo utiliza para describir el enfoque adoptado por el presente artículo.

El controlador de eventos de ItemAdded en el controlador de eventos de la lista en primer lugar comprueba que el elemento agregado a la lista de la biblioteca de documentos es un documento de Word al comprobar el nombre del documento para la extensión de nombre de archivo .doc o .docx.

// Verify the document added is a Word document
// before starting the conversion.
if (properties.ListItem.Name.Contains(".docx") 
    || properties.ListItem.Name.Contains(".doc"))
{

Si el elemento es un documento de Word el código crea y inicializa objetos ConversionJobSettings y ConversionJob para convertir el documento al formato PDF.

//Variables used by the sample code.
ConversionJobSettings jobSettings;
ConversionJob pdfConversion;
string wordFile;
string pdfFile;

// Initialize the conversion settings.
jobSettings = new ConversionJobSettings();
jobSettings.OutputFormat = SaveFormat.PDF;

// Create the conversion job using the settings.
pdfConversion = 
  new ConversionJob("Word Automation Services", jobSettings);

// Set the credentials to use when running the conversion job.
pdfConversion.UserToken = properties.Web.CurrentUser.UserToken;

El documento de Word para convertir y el nombre del documento PDF para crearse se agregan a la ConversionJob.

// Set the file names to use for the source Word document
// and the destination PDF document.
wordFile = properties.WebUrl + "/" + properties.ListItem.Url;
if (properties.ListItem.Name.Contains(".docx"))
{
  pdfFile = wordFile.Replace(".docx", ".pdf");
}
else
{
  pdfFile = wordFile.Replace(".doc", ".pdf");
}

// Add the file conversion to the Conversion Job.
pdfConversion.AddFile(wordFile, pdfFile);

Por último, el ConversionJob se agrega a la cola de trabajo de conversión de Servicios de automatización de Word.

// Add the conversion job to the Word Automation Services 
// conversion job queue. The conversion does not occur
// immediately but is processed during the next run of
// the document conversion job.
pdfConversion.Start();

Consultar

Ver el vídeo

Ver el vídeo

Duración del vídeo: 06: 15 | Tamaño de archivo: 7,5 MB | Tipo: WMV

Hacer clic para obtener el código

Tomar el código

Explórelo

 

Nota

Declinación de responsabilidades de traducción automática: Este artículo se ha traducido con un sistema informático sin intervención humana. Microsoft ofrece estas traducciones automáticas para que los hablantes de otros idiomas distintos del inglés puedan disfrutar del contenido sobre los productos, los servicios y las tecnologías de Microsoft. Puesto que este artículo se ha traducido con traducción automática, es posible que contenga errores de vocabulario, sintaxis o gramática.