Autres contrôles de paramètres de convertisseur
Si vous devez créer un convertisseur de documents personnalisé, il est possible que vous deviez recueillir d'autres informations auprès de l'administrateur que celles proposées dans la page des paramètres de configuration de document par défaut de Microsoft Office SharePoint Server 2007. Pour recueillir ces informations, vous pouvez spécifier un contrôle .ascx personnalisé de sorte qu'il soit hébergé dans une page de convertisseur existante.
Pour spécifier un contrôle de paramètres de configuration personnalisés, vous pouvez définir l'élément ConverterSpecificSettingsUI du convertisseur de documents sur le nom de fichier du contrôle .ascx que vous souhaitez utiliser. Il s'agit d'un élément facultatif. Vous devez spécifier une page de paramètres de configuration de convertisseur dans l'élément ConverterSettingsForContentType pour héberger le contrôle.
Pour plus d'informations sur la définition de convertisseur de documents, voir Schéma de définition du convertisseur de documents.
La page de paramètres de configuration que vous spécifiez doit contenir du code qui implémente l'interface IDocumentConverterControl, comme illustré dans l'exemple ci-après.
La chaîne retournée par le contrôle doit être en outre un nœud XML valide.
public class XslApplicatorSettingsControl : UserControl,
IDocumentConverterControl
{
/// <summary>
/// XSLT asset selector control
/// </summary>
public AssetUrlSelector assetSelectedXsl;
/// <summary>
/// Validator to make sure user picks XSLT
/// </summary>
public FileExtensionValidator fileExtensionValidator;
/// <summary>
/// Input form section, used only to get the display title of the
section
/// </summary>
public InputFormSection inputSection;
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.fileExtensionValidator.ControlToValidate =
this.assetSelectedXsl.ID;
}
private const string ConverterSettingsXmlName =
"XslApplicatorConverterSettings";
/// <summary>
/// Property that is the interface to the outer world - get/set a
string
that persists the settings
/// </summary>
public string ConverterSettings
{
get
{
StringBuilder sb = new StringBuilder("<", 256);
sb.Append(ConverterSettingsXmlName);
sb.Append(" Version=\"1\" >");
sb.Append("<FilePlaceHolder Url=\");
sb.Append(this.assetSelectedXsl.AssetUrl);
sb.Append("\">");
sb.Append("</FilePlaceHolder>");
sb.Append("</");
sb.Append(ConverterSettingsXmlName);
sb.Append(">");
return sb.ToString();
}
set
{
if (!String.IsNullOrEmpty(value))
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(value);
RcaUtilities.FilePlaceHolderElementName;
XmlNodeList cl = xmlDoc.SelectNodes("//FilePlaceHolder");
if (cl.Count > 0)
{
XmlNode node = cl[0];
XmlAttribute attribute = node.Attributes["Url"];
string fileUrl = String.Empty;
if (attribute != null && attribute.Value != null)
{
fileUrl = attribute.Value;
}
this.assetSelectedXsl.AssetUrl = fileUrl;
}
}
}
}
/// <summary>
/// Implement setter to fulfill the interface
/// </summary>
public SPContentType ContentType
{
set
{
}
get
{
return null;
}
}
/// <summary>
/// This control always requires configuration
/// </summary>
public bool RequiresConfiguration
{
get
{
return true;
}
}
/// <summary>
/// Display title, used to direct user to this section in the page in
case of validation errors
/// </summary>
public string SectionDisplayTitle
{
get
{
return this.inputSection.Title;
}
}
Paramètres de fichier externe
Un contrôle .ascx permettant à l'utilisateur de pointer vers un fichier représente un défi spécial : le convertisseur exécute son propre processus et n'a pas accès aux fichiers sur le serveur. Le contenu de tous les fichiers doit donc être lu dans les informations de configuration passées au convertisseur. L'infrastructure du convertisseur de documents contient un mécanisme par lequel une référence à un fichier transmet le contenu du fichier aux informations de paramètres de configuration lorsque le convertisseur est appelé.
Pour lire le contenu d'un fichier dans les informations de paramètres de configuration, vous devez ajouter un élément FilePlaceholder au code XML des paramètres de configuration. Cet élément possède un seul attribut, Url, qui représente l'URL du fichier dont vous souhaitez lire le contenu dans les informations de paramètres de configuration passées au convertisseur.
Par exemple :
<FilePlaceHolder Url="myUrlHere"><\FilePlaceHolder>
Lorsqu'une conversion de documents est démarrée, l'infrastructure de celle-ci effectue les opérations suivantes pour chaque élément FilePlaceHolder des paramètres de configuration :
résolution de l'adresse URL ;
ouverture du fichier spécifié ;
codage en base64 du contenu du fichier et placement du contenu codé dans le nœud FilePlaceHolder.
Lorsque le convertisseur reçoit les paramètres de configuration, il doit convertir le contenu du fichier. Pour ce faire, il doit accéder au nœud FilePlaceHolder et convertir son contenu. Par exemple :
byte[] fileContent = System.Convert.FromBase64String(node.InnerXml);
Pour plus d'informations sur les éléments XML des paramètres de configuration passés au convertisseur, voir Schéma des paramètres de configuration de convertisseur documents/pages.
Voir aussi
Autres ressources
Vue d'ensemble des convertisseurs de documents
Convertisseurs de documents
Déploiement de conversion de document
Schéma de définition du convertisseur de documents
Schéma des paramètres de configuration de convertisseur documents/pages