Автоматическое создание кнопок навигации в PDF для iOS и android

  • Автор темы Автор темы Bazinga
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Bazinga

Участник
Топикстартер
Сообщения
9
Реакции
0
Приветствую, коллеги!
Подскажите, как реализовать задачу.
Имеется многостраничный пдф. Нужно автоматом поставить на каждую страницу кнопку, которая будет открывать страницу с содержанием, например третью.
Условие: навигация должна работать в iOS и в Android.
Есть 8-й акробат про и питстоп. В питстопе такую возможность не нашёл.
Нарыл JS скрипт, который делает такие кнопки, но к сожалению, в iOS навигация не работает (в акробате всё ок)
Куда рыть?
 
в iOS навигация не работает
Не работает как? -
1) Не видна кнопка вообще
2) Не работают скрипты вообще
3) Кнопка есть, но при нажатии ничего не происходит
И что за скрипт вы используете?
 
Еще вопрос -- какую программу для просмотра PDF используете на iOS?
 
Создайте кнопку с линком на нужную стр. в Acrobat Pro и "скопипастите" на все страницы. В родном Adobe Reader для ios должно работать.
 
Не работает как? -
1) Не видна кнопка вообще
2) Не работают скрипты вообще
3) Кнопка есть, но при нажатии ничего не происходит
И что за скрипт вы используете?
Ситуация такая:
В акробате имеем вот такие кнопки, всё работает:

untitled.JPG



В превью дропбокса такая картинка, кнопки некликабельны :

фотография 2.jpg


И в аппловской читалке iBooks кнопки не видны вообще:

фотография 1.jpg


Под рукой только айфон, поэтому как будет на Андроиде не знаю.
Скорее всего так же.
Скрипт вот такой:
Код:
// Add navigation buttons to the page
// This script puts 3 buttons on top of every page (except the first one that has one button)
// First button "<" : takes to the previous page
// Second button: "1" : takes to the first page of the document
// Third button: ">" : takes to the next page in the document (does not exists on the last page)
 
var inch = 72;
 
try
{
 
    nLastPage = this.numPages - 1;
 
    for (var p = 0; p < this.numPages; p++)
    {
        var x = 0.5;
 
        if (p > 0)
        {
            AddButton(p,x,0.5,0.25,0.25,"PrevPage","<","Previous Page","this.pageNum--;"); // left arrow, previous page
            x += 0.3;
        }
 
        if (p != 0)
        {
            AddButton(p,x,0.5,0.25,0.25,"StartPage","1","Go To First Page","this.pageNum=0;"); // "1", takes to the first page
            x += 0.3;
        }
 
        if (p < nLastPage)
        {
            AddButton(p,x,0.5,0.25,0.25,"NextPage",">","Next Page","this.pageNum++;"); // right arrow, next page
            x += 0.3;
        }
 
        AddButton(p,x,0.5,0.25,0.25,"Back","<<","Go Back","app.execMenuItem(\"GoBack\");"); // right arrow, next page
        x += 0.3;
 
    }
 
}
 
 
catch (e)
{
app.alert(e);
}
 
// AddButton function creates a button with given parameters and action
 
function AddButton(nPageNum, x, y, width, height, strText, strCaption, strToolTip, strAction)
{
    var aRect = this.getPageBox( { nPage: nPageNum} );
    aRect[0] += x * inch;
    aRect[1] -= y * inch;
    aRect[2] = aRect[0] + width * inch;
    aRect[3] = aRect[1] - height * inch;
 
    var f = this.addField(strText,"button", nPageNum, aRect);
    f.setAction("MouseUp",strAction);
    f.userName = strToolTip;
    f.delay = true;
    f.borderStyle = border.s;
    f.highlight = "push";
    f.textSize = 0; // autosized
    f.textColor = color.blue;
    f.strokeColor = color.blue;
    f.fillColor = color.white;
    // you can specify a different font here, otherwise it uses a default one
    //f.textFont = font.ZapfD;
    f.buttonSetCaption(strCaption);
    f.delay = false;
}
 
Создайте кнопку с линком на нужную стр. в Acrobat Pro и "скопипастите" на все страницы. В родном Adobe Reader для ios должно работать.
Если бы было страниц 12, то да, но 120 полос и больше - нереально.
Как бы это корректно автоматизировать?
 
"app.execMenuItem(\"GoBack\");"
У вас на кнопке висит вызов пункта акробатовского меню, конечно же нигде кроме акробата оно работать не будет. Да и вообще, что за пункт такой "Go back"?
На остальных, вроде, работать должно, единственно что, я не пойму, зачем вы скриптом сами кнопки создаете, да еще и на действие "MouseUp" завязываетесь? Надо создавать в акробате и сам скрипт там же в свойствах кнопки прописывать, как недавно imma объяснял.
 
У вас на кнопке висит вызов пункта акробатовского меню, конечно же нигде кроме акробата оно работать не будет.
Нет. На кнопке висит ссылка на первую страницу, а меню - это свойства кнопки.
Да и вообще, что за пункт такой "Go back"?
Мопед, как говорится не мой, я к сожалению в скриптах не особо понимаю. Нашёл на просторах интернета.
На остальных, вроде, работать должно, единственно что, я не пойму, зачем вы скриптом сами кнопки создаете, да еще и на действие "MouseUp" завязываетесь? Надо создавать в акробате и сам скрипт там же в свойствах кнопки прописывать, как недавно imma объяснял.
Поделитесь ссылкой, плиз.
 
Поделитесь ссылкой, плиз.
Типа такого, только вместо формата поля действие на кнопку. Попробуйте на одной кнопке, что именно работать будет во всех программах, а потом по образу и подобию сделайте везде.
 
Статус
Закрыто для дальнейших ответов.