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?

Foi útil?

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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top