Erweitern der Exportfunktion mit festgelegtem Format in Word Automation Services
Erweitern Sie Word Automation Services in Microsoft Office 2013 ersetzen Sie die Bibliothek, die von der Funktion zum Exportieren in feste Formate verwendet.
Einführung in die Word-Datei Konvertierung Service mit festem Format export feature
In diesem Artikel wird beschrieben, wie so erweitern Sie das Feature exportieren in feste Formate von Word Automation Services zu verschiedenen exportieren in feste Formate-DLLs verwenden, sodass Drittanbieter-Entwickler von Microsoft bereitgestellte ersetzen können. Dieser Mechanismus ist erforderlich und des Office-Clients mit festem Format Erweiterbarkeit COM-Schnittstelle erweitert. Weitere Informationen finden Sie unter Extending the Office 2007 Fixed-Format Export Feature.
Suche
Word Automation Services können Drittanbieter-Entwickler ersetzen Sie einen oder beide der Ausgaben mit festem Format unterstützt:
- XPS
Um jedes Format zu ersetzen, muss sich die DLL im selben Verzeichnis wie die Kernbibliothek (Sword.dll) für Word Automation Services (Installationspfad: root\WebServices\ConversionService\Bin\Converter) befinden und über den in Tabelle 1 angegebenen Dateinamen verfügen.
Tabelle 1. Dateinamen für Export-DLLs im festen Format
Format | Dateiname |
---|---|
Renderpdf.dll | |
XPS | Renderxps.dll |
Initialisierung
Eine Methode mit der folgenden Signatur muss die DLL-Datei exportiert werden.
HRESULT HrGetDocExporter (
IMsoDocExporter **ppimde,
IMsoServerFileManagerSite *psfms,
PFNKeepAlive pfnKeepAlive
)
Die Funktion erfordert die DLL zwei Schnittstellen und einer Methodenzeiger, die im folgenden Abschnitt beschrieben bereitgestellt. Wenn die Funktion Fehler zurückgibt wird der Dienst nicht auf die Microsoft bereitgestellten Exporter (engl.) zurückgreifen. Stattdessen meldet der Dienst die Konvertierung als fehlgeschlagen ist.
IMsoDocExporter
Die IMsoDocExporter -Schnittstelle ist identisch mit der vorhandenen-Schnittstelle auf MSDN dokumentiert. Weitere Informationen finden Sie unter Extending the Office 2007 Fixed-Format Export Feature. Wenn die frühere Methode Erfolg zurückgegeben wird, werden diese Schnittstelle die Konvertierung durchgeführt. Über die Anforderungen in der oben genannten Artikel beschrieben wird müssen Entwickler von DLLs exportieren in feste Formate Beachten Sie, dass der Dienst den bereitgestellten IMsoDocExporter in einem anderen Thread von der Anrufen kann, auf dem der Dienst HrGetDocExporterbezeichnet. Die DLL muss dies ohne den Anruf wieder an der Thread, HrGetDocExporter, aufgerufen, da der Dienst wird ein Nachrichtensystem nicht ausgeführt, und der gemarshallte Anruf nie erhalten über (was eine hängen und weitere Fehler) gemarshallt behandeln können.
IMsoServerFileManagerSite
Die IMsoServerFileManagerSite-Schnittstelle wird wie folgt definiert.
#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;
};
Diese Schnittstelle stellt die folgenden Methoden.
Tabelle 2. Methoden, die von der IMsoServerFileManagerSite-Schnittstelle verfügbar gemacht werden**
Methode | Beschreibung |
---|---|
FGetHandle | Ruft ein Dateihandle ab. |
FCloseHandle | Gibt ein Dateihandle frei. |
Diese Schnittstelle erbt nicht von IUnknown. Die DLL-Datei exportieren in feste Formate darf entsprechend, einen Verweis auf dieses für die Lebensdauer bleiben.
FGetHandle
Das mit festem Format exportieren DLL-Aufrufe dieser Funktion zum Abrufen des Dateihandles zum Schreiben in. Es muss nicht versuchen Sie zum Öffnen von Dateien über einen anderen Mechanismus, da der Dienst in einer stark eingeschränkten Umgebung ohne Zugriff auf die meisten Stellen im Dateisystem ausgeführt wird.
BOOL FGetHandle (
const WCHAR *pwzFile,
HANDLE *phFile,
BOOL fRead,
BOOL fWrite
)
Tabelle 3. FGetHandle-Parameter**
Parameter | Beschreibung |
---|---|
pwzFile | Gibt den Namen der Datei, das mit festem Format exportieren DLL öffnen möchte. Dies muss keinen vollständigen Dateipfad - müssen sie nur einen Dateinamen ein (beispielsweise Output.pdf) angeben. |
phFile | Gibt das Handle für die angegebene Datei an, ob die Datei erfolgreich geöffnet wird. Das Exportieren in feste Formate DLL können Sie dieses HANDLE in normalen Dateivorgänge, bis es geschlossen wird durch Aufrufen der FCloseHandle -Methode. |
fRead | Gibt an, ob die Datei mit Lesezugriff geöffnet werden. |
fWrite | Gibt an, ob die Datei mit Schreibzugriff geöffnet werden. Diese Funktion gibt true, um Erfolg anzuzeigen und FALSE, um Fehler anzuzeigen. |
FCloseHandle
Das Exportieren in feste Formate DLL ruft diese Funktion um, die durch Aufrufen der Methode FGetHandle dateikennungen zu schließen.
BOOL FCloseHandle (
HANDLE phFile,
)
Der phFile-Parameter gibt das Handle für die zu schließende Datei an. Wenn der durch diese Methode zurückgegebene Wert 0 ist, einem fehlgeschlagenen Vorgang. Alle anderen Werte geben bei Erfolg.
PFNKeepAlive
Wenn die DLL-Datei für Exporte mit festgelegtem Format aktiv ist, muss sie in regelmäßigen Abständen (konfigurierbar durch den Administrator) die Funktion KeepAlive aufrufen. Andernfalls geht der Dienst davon aus, dass die DLL-Datei für Exporte mit festgelegtem Format nicht mehr reagiert, und beendet den Prozess.
typedef void (*PFNKeepAlive)(void)
Siehe auch
Weitere Informationen finden Sie in den folgenden Ressourcen: