Compartir a través de


Extender la característica de exportación de formato fijo de Word Automation Services

Extender Word Automation Services en Microsoft Office 2013 para reemplazar la biblioteca usada la característica de exportación de formato fijo.

Introducción al conversión servicio fijo-formato de archivo Word la característica de exportación

En este artículo se describe cómo extender la característica de exportación de formato fijo de Word Automation Services utilizar archivos DLL de exportación de formato fijo diferente, por lo que los desarrolladores de terceros pueden reemplazarlos proporcionados por Microsoft. Este mecanismo se requiere y extiende al cliente de Office interfaz COM de extensibilidad de formato fijo. Para obtener más información, vea Extending the Office 2007 Fixed-Format Export Feature.

Descubrimiento

Word Automation Services permite a los programadores de terceros reemplazar uno o ambos de los resultados de formato fijo compatibles:

  • PDF
  • XPS

Para reemplazar cada formato, el archivo DLL debe encontrarse en el mismo directorio que la biblioteca principal (Sword.dll) para Word Automation Services (ruta de acceso de instalación: root\WebServices\ConversionService\Bin\Converter) y debe tener el nombre de archivo específico especificado en la tabla 1.

Tabla 1. Nombres de archivo para archivos DLL de exportación de formato fijo

Formato Nombre de archivo
PDF Renderpdf.dll
XPS Renderxps.dll

Inicialización

El archivo DLL debe exportar un método con la siguiente firma.

HRESULT HrGetDocExporter (
  IMsoDocExporter **ppimde,
  IMsoServerFileManagerSite *psfms,
  PFNKeepAlive pfnKeepAlive
)

La función requiere el archivo DLL proporcionar dos interfaces y un puntero de método, que se describe en la siguiente sección. Si la función devuelve el error el servicio no recurrirá al exportador proporcionados por Microsoft. En su lugar, el servicio notificará la conversión como errónea.

IMsoDocExporter

La interfaz de IMsoDocExporter es idéntica a la interfaz existente documentada en MSDN. Para obtener más información, vea Extending the Office 2007 Fixed-Format Export Feature. Cuando el método anterior devuelve correcto, esta interfaz realiza la conversión. Más allá de los requisitos descritos en el citado artículo, los desarrolladores de archivos DLL de exportación de formato fijo deben tener en cuenta que el servicio puede llamar a la proporcionada IMsoDocExporter en un subproceso diferente de aquél en el que el servicio llamado HrGetDocExporter. El archivo DLL debe ser capaz de controlar esto sin cálculo de referencias de la llamada al subproceso que llamó a HrGetDocExporter, debido a que el servicio no ejecuta una serie de mensajes y la llamada de cálculo de referencias nunca atravesar (lo que resulta en un bloqueo y errores posteriores).

IMsoServerFileManagerSite

La interfaz de IMsoServerFileManagerSite se define como sigue.

#undef  INTERFACE
#define INTERFACE  IMsoServerFileManagerSite
DECLARE_INTERFACE(IMsoServerFileManagerSite)
{
  STDMETHOD_(BOOL, FGetHandle) (const WCHAR *pwzFileName, HANDLE *phFile, BOOL fRead, BOOL fWrite) PURE;
  STDMETHOD_(BOOL, FCloseHandle) (HANDLE hFile) PURE;
};

Esta interfaz expone los siguientes métodos.

Tabla 2. Métodos expuestos por la interfaz IMsoServerFileManagerSite**

Método Descripción
FGetHandle Obtiene un identificador de archivo.
FCloseHandle Libera un identificador de archivo.

Esta interfaz no se hereda de IUnknown. Por lo tanto, se permite la exportación de formato fijo DLL para mantener una referencia a ella durante su vida.

FGetHandle

El formato fijo exportar biblioteca DLL llama a esta función para obtener los identificadores de archivo para escribir en. No debe intentar abrir archivos a través de cualquier otro mecanismo debido a que el servicio se ejecuta en un entorno muy restringido sin acceso a la mayoría de los sitios en el sistema de archivos.

BOOL FGetHandle (
  const WCHAR *pwzFile,
  HANDLE *phFile,
  BOOL fRead,
  BOOL fWrite
)

Tabla 3. Parámetros FGetHandle**

Parámetro Descripción
pwzFile Especifica el nombre del archivo DLL desea abrir de exportación de formato fijo. No debe ser una ruta de acceso completa al archivo, debe especificar un nombre de archivo (por ejemplo, Output.pdf).
phFile Especifica el identificador para el archivo especificado, si el archivo se abre correctamente. La exportación de formato fijo DLL puede, a continuación, usar este identificador en las operaciones de archivo normal hasta que cierra llamando al método FCloseHandle.
fRead Especifica si el archivo se puede abrir con acceso de lectura.
Fwrite Especifica si el archivo se puede abrir con acceso de escritura. Esta función devuelve TRUE para indicar que es correcto y FALSE para indicar un error.

FCloseHandle

La exportación de formato fijo DLL llama a esta función para cerrar los identificadores de archivo que se obtienen a través de las llamadas al método FGetHandle.

BOOL FCloseHandle (
  HANDLE phFile,
)

El parámetro phFile especifica el identificador del archivo que se va a cerrar. Si el valor devuelto por este método es 0, error en la operación. Todos los otros valores indican éxito.

PFNKeepAlive

Cuando el archivo DLL de exportación de formato fijo está activo, debe llamar a la función KeepAlive a intervalos regulares (configurable por el administrador) para evitar que el servicio suponiendo que el archivo DLL de exportación de formato fijo no responde y, por tanto, termina el proceso. typedef void (*PFNKeepAlive)(void)

Vea también

Para obtener más información, consulte los siguientes recursos: