Frage

Ich versuche, die Zoomstufe eines Visio-Dokuments festzulegen, das über den Visio-Webdienst angezeigt wird.

http://mysite/_layouts/VisioWebAccess/VisioWebAccess.aspx?id=/Shared%20Documents/MyDiagram.vdw

Ich möchte die Zoomstufe „An Seite anpassen“ verwenden, die durch Drücken der Schaltfläche rechts in der Symbolleiste erreicht wird.Mein erster Gedanke war, über Javascript auf die Schaltfläche zu klicken, hatte aber keinen sofortigen Erfolg und bin auch auf MSDN-Artikel gestoßen Objekte in der Visio Services-JavaScript-API, Die Vwa.VwaControl.getActivePage-Methode und das Vwa.Page.setZoom-Methode.

Ich kann erfolgreich a konstruieren VwaControl Objekt

vwaControl = new Vwa.VwaControl("ctl00_PlaceHolderMain_VisioWebAccess");

aber ich verstehe null wenn ich anrufe getActivePage() auf dieser Steuerung.

Ich habe versucht, andere zu konstruieren VwaControl Ich verwende andere IDs von der Seite, aber keine davon ist gültig – ich erhalte eine Fehlermeldung wie „VwaControl existiert nicht für ID {0}“.Ich habe versucht, den Baum von vwaControl._control._zoomControl._fitButton._clickDelegate aus zu durchlaufen, weiß aber nicht, wie ich diesen Delegaten auslösen soll.

Hat jemand eine Funktion zum automatischen Zoomen zur Anpassung implementiert? VisioWebAccess.aspx Seite?

War es hilfreich?

Lösung

Ich habe es aufgegeben, ASPX so zu ändern, dass es automatisch an das Visio-Dokument angepasst wird, sondern habe stattdessen eine andere Lösung gefunden.

Wählen Sie in Visio „An Fenster anpassen“, bevor Sie die Datei speichern.Diese Ansichtseinstellung wird mit der Datei gespeichert und beim Öffnen mit Visio Web Services wird die Datei im Modus „An Fenster anpassen“ geöffnet.

Ebenso führt das Vergrößern eines bestimmten Teils einer Zeichnung und das Speichern dazu, dass diese mit demselben Zoom geladen wird.

Andere Tipps

Aus Paketüberfluss Fügen Sie einen Handler zu „diagramComplete“ hinzu und versuchen Sie dann, die aktive Seite abzurufen.

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);
    }
}

Ich habe die Zoomstufe auf 21 % eingestellt und die Visio-Webpart-ID („WebPartWPQ3“) übergeben, um das vwaControl zu erhalten.Es funktioniert wie erwartet und die Zoomstufe wird beim Laden der Seite auf 21 eingestellt.

<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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top