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?

Était-ce utile?

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>

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top