Aplicar zoom automaticamente para ajustar no Visio Web Access ASPX
-
09-12-2019 - |
Pergunta
Estou tentando definir o nível de zoom de um documento do Visio que é mostrado por meio do Visio Web Service.
http://mysite/_layouts/VisioWebAccess/VisioWebAccess.aspx?id=/Shared%20Documents/MyDiagram.vdw
Quero usar o nível de zoom 'ajustar à página', obtido pressionando o botão à direita da barra de ferramentas.Meu primeiro pensamento foi clicar no botão via javascript, mas não obtive sucesso imediato e também me deparei com artigos do MSDN sobre Objetos na API JavaScript dos Serviços do Visio, o Método Vwa.VwaControl.getActivePage e a Método Vwa.Page.setZoom.
Posso construir com sucesso um VwaControl
objeto
vwaControl = new Vwa.VwaControl("ctl00_PlaceHolderMain_VisioWebAccess");
mas eu entendo null
quando eu ligo getActivePage()
neste controle.
Eu tentei construir outros VwaControl
usando outros IDs da página, mas nenhum deles é válido - recebo um erro como "VwaControl não existe para o ID {0}".Tentei percorrer a árvore de vwaControl._control._zoomControl._fitButton._clickDelegate, mas não sei como disparar esse delegado.
Alguém implementou um recurso de 'zoom automático para ajustar' no VisioWebAccess.aspx
página?
Solução
Desisti de tentar modificar o ASPX para ajustar automaticamente o documento do Visio, mas encontrei outra solução.
Selecione 'Ajustar à janela' no Visio antes de salvar o arquivo.Essa preferência de exibição é salva com o arquivo e, quando aberta usando os Serviços Web do Visio, o arquivo será aberto no modo 'Ajustar à janela'.
Da mesma forma, aumentar o zoom em uma parte específica de um desenho e salvá-lo fará com que ele seja carregado com o mesmo zoom.
Outras dicas
De StackOverflow Adicione um manipulador a 'diagramComplete' e tente obter a página ativa.
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);
}
}
Eu configurei o nível de zoom para 21% e passei o ID da webpart do Visio ("WebPartWPQ3") para obter o vwaControl.Está funcionando conforme o esperado e definindo o nível de zoom como 21 no carregamento da 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>