Вставить имя файла в ПДФ?

  • Автор темы Автор темы polbol
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
@_MBK_, я верил в тебя. ну и в себя. работая в женском коллективе научился профессионально капать на мозги )))
 
В первом приближении как то так
Код:
if (app.viewerVersion < 10) {
    app.addMenuItem({ cName: "Add file info", cUser: "Add file info", cParent: "Tools", cExec: "AddInfoClass()",
        cEnable: "event.rc = (event.target != null);"});
} else {
    app.addToolButton({ cName: "Add file info", cLabel: "Add file info", cExec: "AddInfoClass()",
        cEnable: "event.rc = (event.target != null);"});
}

AddInfoClass = app.trustedFunction(function(){
        app.beginPriv();
       
        var annot = this.addAnnot ({ page: 0,
                                     type: "FreeText",
                                     rect: [0,0,200,10],
                                     fillColor: color.transparent,
                                     textSize: 10,
                                     width:0,
                                     strokeColor: color.black,
                                     contents: this.documentFileName 
                                      });       

        app.endPriv();
        return;
}
)
 
@_MBK_, спасибо. Даже как-то работает. Осталось сообразить как его подружить с акробатом. ))
 
Мда. 0 у программистов это 1. А транспарент красный... ((
 
Не понял
Даже как-то работает.
или
Осталось сообразить как его подружить с акробатом.
?
И при чем тут
0 у программистов это 1. А транспарент красный
?
У меня на восьмерке все работает как надо.
 
@_MBK_, в индезе есть палитра скриптов. В акробате никогда не пробовал. И в папку добавил, в панели не нашел. И tool в джавой открывал... И после каких-то волшебных манипуляций внизу появилась фиговинка )).
В экшене Пейдж 0, ставит на первую страницу. Если пейдж 1, то ставит на вторую. Красным цветом. )
 

Вложения

  • Экшн.jpg
    Экшн.jpg
    201.2 КБ · Просм.: 1 158
И после каких-то волшебных манипуляций внизу появилась фиговинка )).
В экшене Пейдж 0, ставит на первую страницу. Если пейдж 1, то ставит на вторую. Красным
Так и задумано. В версиях ниже 10 ставит пункт в подменю Tools а выше - такую хреновину в панели. То же самое и с номерами страниц - да, в яве (и всех остальных нормальных языках кроме паскаля и бейсика) нумерация начинается с нулевой страницы. Или тебе на каждую страницу документа надо? Тогда в цикле добавлять надо.
А по поводу красного странно - получается что - черный текст на красном фоне? или красный текст на прозрачном фоне?
 
@_MBK_, красный на белом. ) ну на прозрачном наверное точнее. ))

я пока эту хреновину искал мозг сломал. Так что даже не докажу сейчас каким способом установил.. ))) У ну и акробат закрывать надо было. )))
 
@_MBK_, красный на белом. ) ну на прозрачном наверное точнее.
Так на прозрачном или на белом? если на белом непрозрачном, значит в твоем акробате по какой то неведомой причине неправильно отрабатывает свойство fillColor и strokeColor а если нет то только strokeColor попробуй вместо color.black поставить какой то другой color.cyan и т.д - красный цвет меняется? Не знаю может они в новой модели цветовые константы переопределили как то?
Так что даже не докажу сейчас каким способом установил.. ))) У ну и акробат закрывать надо было.
А чего ломать то? Закрыть акробат, скрипт в соответствующую папку и открыть акробат. этот вопрос даже в местном ФАКе есть, кажется? Во всяком случае, тема об этом тут точно была ;)
 
c:\Program Files (x86)\Adobe\Acrobat 10.0\Acrobat\Javascripts\
fillcolorblack дает черную плашку. strokeColor что не пиши, буквы красные. )))
 
strokeColor что не пиши, буквы красные
Чертовски странно, сейчас откопал 10 API - ничего не поменялось, так же strokeColor за цвет символов отвечает. 'hmmm' Можешь в меня кинуть полученным файлом полегче?
 
@_MBK_, сам в шоке. Сейчас поставил на операторскую машину. Черный. И управляемый. )) Потренькаюсь полностью удалить и поставить.
 
Ты файло то кинь полученное - может прояснится ;)
 
@_MBK_, на почту с профиля кинул
 
Кажется, допер, в чем косяк. попробуй вот так:
Код:
if (app.viewerVersion < 10) {
    app.addMenuItem({ cName: "Add file info", cUser: "Add file info", cParent: "Tools", cExec: "AddInfoClass()",
        cEnable: "event.rc = (event.target != null);"});
} else {
    app.addToolButton({ cName: "Add file info", cLabel: "Add file info", cExec: "AddInfoClass()",
        cEnable: "event.rc = (event.target != null);"});
}

AddInfoClass = app.trustedFunction(function(){
        app.beginPriv();
       
        var annot = this.addAnnot ({ page: 0,
                                     type: "FreeText",
                                     rect: [0,0,200,10],
                                     fillColor: color.transparent,
                                     width:0,
                                      });       
        var spans = new Array();
        spans[0] = new Object();
        spans[0].text = this.documentFileName;
        spans[0].textColor = color.black;
        spans[0].textSize = 10;
        annot.richContents = spans;

        app.endPriv();
        return;
}
)
 
Азм есмь black ))))
 
Видишь, получается, в старых акробатах (причем, похоже, дело даже не в версии акробата, а в формате PDF) цвет текста по умолчанию наследовался от цвета рамки, а в новых его надо явно вбивать через параметры форматирования. Адоба постоянно работает над тем, чтобы пользователю было еще удобнее! 'P:E'
 
@_MBK_,
Не по теме:
ты скажи чё ты хочешь, может дам ... и т.д. :))
Ну с одной стороны дали не зависимость от вида ПДФ, с другой удлинили код.
 
как эти люди (см. файл ниже) через яву сделали вставку текста (не комментария, а именно текста в документ?)
какой командой?

файл со скриптом (нужно скачать) https://acrobatusers.com/assets/uploads/actions/File_Name_Stamper.pdf
содержимое sequ файла (тыкнуть по ссылке) - <</Commands [/c << /0 [/c << /Config [/c << /UIPolicy [/i 3] >>] /Handler - Pastebin.com
пример вставленного текста справа в углу
001.png

а, всё нашел. .addWatermarkFromText ?
 
Последнее редактирование:
Ну там же так прямо и написано - мол, ватермарку вставляет.
На самом деле, ватермарка - менее кошерный способ, в отличие от аннотации, которую даже ридер делать, по идее, может.
 
Статус
Закрыто для дальнейших ответов.