Pregunta

Estoy intentando establecer el nivel de zoom de un documento de Visio que se muestra a través del servicio web de Visio.

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

Quiero utilizar el nivel de zoom "ajustar a la página" que se logra presionando el botón a la derecha de la barra de herramientas.Lo primero que pensé fue hacer clic en el botón mediante javascript, pero no obtuve un éxito inmediato y también encontré artículos de MSDN sobre Objetos en la API de JavaScript de los servicios de Visio, el Método Vwa.VwaControl.getActivePage y el Método Vwa.Page.setZoom.

Puedo construir exitosamente un VwaControl objeto

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

pero lo entiendo null cuando llamo getActivePage() sobre este control.

He intentado construir otros VwaControl usando otros identificadores de la página pero ninguno de ellos es válido. Recibo un error como "VwaControl no existe para el identificador {0}".Intenté recorrer el árbol desde vwaControl._control._zoomControl._fitButton._clickDelegate pero no sé cómo despedir a ese delegado.

¿Alguien ha implementado una función de 'zoom automático para ajustar' en el VisioWebAccess.aspx ¿página?

¿Fue útil?

Solución

Dejé de intentar modificar el ASPX para que se ajuste automáticamente al documento de Visio, pero encontré otra solución.

Seleccione 'Ajustar a la ventana' en Visio antes de guardar el archivo.Esta preferencia de vista se guarda con el archivo y, cuando se abre mediante los servicios web de Visio, el archivo se abrirá en el modo "Ajustar a la ventana".

De la misma manera, hacer zoom en una parte particular de un dibujo y guardarlo hará que se cargue con el mismo zoom.

Otros consejos

De Desbordamiento de pila Agregue un controlador a 'diagramComplete' y luego intente obtener la página activa.

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

Configuré el nivel de zoom en 21% y pasé la identificación del elemento web de Visio ("WebPartWPQ3") para obtener vwaControl.Funciona como se esperaba y establece el nivel de zoom en 21 al cargar la página.

<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>
Licenciado bajo: CC-BY-SA con atribución
scroll top