Автоматическое масштабирование по размеру в Visio Web Access ASPX

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/37588

  •  09-12-2019
  •  | 
  •  

Вопрос

Я пытаюсь установить уровень масштабирования документа Visio, который отображается через веб-службу Visio.

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

Я хочу использовать уровень масштабирования «по размеру страницы», который достигается нажатием кнопки в правой части панели инструментов.Моей первой мыслью было нажать кнопку с помощью JavaScript, но она не добилась немедленного успеха, а также наткнулась на статьи MSDN по этому вопросу. Объекты в API JavaScript служб Visio, Метод Vwa.VwaControl.getActivePage и Метод Vwa.Page.setZoom.

Я могу успешно построить VwaControl объект

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

но я получаю null когда я звоню getActivePage() на этом контроле.

Я пробовал построить другие VwaControl используя другие идентификаторы со страницы, но ни один из них не является действительным, я получаю сообщение об ошибке типа «VwaControl не существует для идентификатора {0}».Я попытался пройти вниз по дереву из vwaControl._control._zoomControl._fitButton._clickDelegate, но не знаю, как запустить этот делегат.

Кто-нибудь реализовал функцию «автоматического масштабирования по размеру» в VisioWebAccess.aspx страница?

Это было полезно?

Решение

Я отказался от попыток изменить ASPX для автоматического соответствия документу Visio, но вместо этого нашел другое решение.

Перед сохранением файла выберите «По размеру окна» в Visio.Эта настройка просмотра сохраняется вместе с файлом, и при открытии с помощью веб-служб Visio файл будет открыт в режиме «По размеру окна».

Точно так же увеличение определенной части рисунка и сохранение приведет к ее загрузке с тем же масштабом.

Другие советы

От Переполнение стека Добавьте обработчик в «diagramComplete», а затем попробуйте получить активную страницу.

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

Я установил уровень масштабирования на 21% и передал идентификатор веб-части Visio («WebPartWPQ3»), чтобы получить vwaControl.Он работает должным образом и устанавливает уровень масштабирования 21 при загрузке страницы.

<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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top