Zoom automatique pour s'adapter dans Visio Web Access ASPX
-
09-12-2019 - |
Question
J'essaie de définir le niveau de zoom d'un document Visio affiché via le service Web Visio.
http://mysite/_layouts/VisioWebAccess/VisioWebAccess.aspx?id=/Shared%20Documents/MyDiagram.vdw
Je souhaite utiliser le niveau de zoom « Ajuster à la page » qui est obtenu en appuyant sur le bouton à droite de la barre d'outils.Ma première pensée a été de cliquer sur le bouton via javascript, mais je n'ai pas obtenu de succès immédiat et je suis également tombé sur des articles MSDN sur Objets dans l'API JavaScript de Visio Services, le Méthode Vwa.VwaControl.getActivePage et le Méthode Vwa.Page.setZoom.
Je peux réussir à construire un VwaControl
objet
vwaControl = new Vwa.VwaControl("ctl00_PlaceHolderMain_VisioWebAccess");
mais je reçois null
quand j'appelle getActivePage()
sur ce contrôle.
J'ai essayé d'en construire d'autres VwaControl
en utilisant d'autres identifiants de la page mais aucun d'entre eux n'est valide - j'obtiens une erreur du type "VwaControl n'existe pas pour l'identifiant {0}".J'ai essayé de parcourir l'arborescence depuis vwaControl._control._zoomControl._fitButton._clickDelegate mais je ne sais pas comment renvoyer ce délégué.
Quelqu'un a-t-il implémenté une fonctionnalité de « zoom automatique pour s'adapter » dans le VisioWebAccess.aspx
page?
La solution
J'ai abandonné en essayant de modifier l'ASPX pour adapter automatiquement le document Visio, mais j'ai trouvé une autre solution.
Sélectionnez "Ajuster à la fenêtre" dans Visio avant d'enregistrer le fichier.Cette préférence de vue est enregistrée avec le fichier et lors de l'ouverture de Visio Web Services, le fichier sera ouvert dans le mode 'Fit to Window'.
De la même manière, zoomer sur une partie particulière d'un dessin et d'une économie entraînera la charge avec ce même zoom.
Autres conseils
de Stackoverflow Ajouter un gestionnaire à 'diagramcomplete' puis essayez ad obtenir la page active.
function zoomVWAControl()
{
vwaControl= new Vwa.VwaControl("WebPartWPQ2");
vwaControl.addHandler("diagramcomplete", onDiagramComplete);
}
function onDiagramComplete()
{
try{
vwaPage = vwaControl.getActivePage();
var zoomLevel = vwaPage.getZoom();
vwaPage.setZoom(Number(200));
}
catch(err){
alert(err);
}
}
J'ai défini le niveau de zoom à 21% et j'ai passé l'identifiant Visio WebPart ("WebpartWPQ3") pour obtenir le vwacontrol.Son fonctionnement comme prévu et définissant le niveau de zoom comme 21 sur la charge de la page.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
var vwaControl;
var vwaPage;
$(document).ready(function(){
vwaControl= new Vwa.VwaControl("WebPartWPQ3");
vwaControl.addHandler("diagramcomplete", onDiagramComplete);
});
function onDiagramComplete(){
try{
vwaPage = vwaControl.getActivePage();
var zoomLevel = '21';
vwaPage.setZoom(Number(zoomLevel));
}
catch(err){
alert(err);
}
}
</script>