Domanda

Sto cercando di impostare il livello di zoom di un documento Visio che viene visualizzato tramite Visio Web Service.

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

Voglio utilizzare il livello di zoom "Adatta alla pagina" che si ottiene premendo il pulsante a destra della barra degli strumenti. Il mio primo pensiero è stato cliccare sul pulsante tramite JavaScript, ma non ha avuto successo immediato e anche inciampato attraverso gli articoli MSDN su Oggetti in Visio Services JavaScript API , vwa .Vwacontrol.getActivePage Method e il metodo vwa.page.setzoom .

Posso costruire con successo un oggetto VwaControl

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

Ma ottengo null quando chiamo getActivePage() su questo controllo.

Ho provato a costruire altri VwaControl utilizzando altri ID dalla pagina ma nessuno di essi è valido - ottengo un errore come "VWaControl non esiste per ID {0}". Ho provato a attraversare l'albero da vwacontrol._control._zoomcontrol._fitbutton._ClickDelegate ma non so come sparare quel delegato.

Qualcuno ha implementato una funzione "Auto Zoom to Fit" nella pagina VisioWebAccess.aspx?

È stato utile?

Soluzione

Ho rinunciato a provare a modificare l'ASPX per adattarsi automaticamente il documento Visio, ma hai invece trovato un'altra soluzione.

Seleziona 'Adatta alla finestra' in Visio prima di salvare il file.Questa preferenza di visualizzazione viene salvata con il file e quando viene aperta utilizzando Visio Web Services il file verrà aperto in modalità 'Adatta alla finestra'.

Allo stesso modo, lo zoom su una particolare parte di un disegno e salvare lo farà carico con lo stesso zoom.

Altri suggerimenti

Da Stackoverflow Aggiungi un gestore a 'DiagramComplete', quindi provare ad ottenere la pagina attiva.

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

Ho impostato il livello di zoom sul 21% e ha superato il VISIO WebPart ID ("WebPartWPQ3") per ottenere VWaControl.Lavora come previsto e imposta il livello di zoom come 21 sul carico della pagina.

<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>
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top