Ampliar automáticamente para ajustar en Visio Web Access ASPX
-
09-12-2019 - |
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?
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>