Автоматическое масштабирование по размеру в Visio Web Access ASPX
-
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>