Поисковая форма:) поиск по free-lance.ru Топ/история/обновления фриланса, по разным параметрам (темы, сообщения, пользователи...) Автоматическое удаление постов от ненужных юзеров в топике (php скрипт) Досье(точный ник)
 

Ник (или часть ника):
?
Какой текст ищем:
?
Раздел блогов:
За срок
дней
Тип поиска: (по вхождению: по тексту гуг выдаст посты с "гуг", "гугл", "огугл"; "полнотекстовый": по тексту "гуг" выдаст посты только с "гуг")
По вхождению строки:  Полнотекстовый: 
(поиск не 100% актуальный, есть определённая задержка при обновлении данных для поиска. )
0 Всего найдено: 15
Lazytech Сообщение 25/07/2009 04:18 Копия темы
Как делать закладки в Adobe Reader при помощи JavaScript Недавно интересовались, как делать закладки в Adobe Reader:
www.free-lance.ru/blogs/v...

А вот русифицированный код на JavaScript, если кому-то интересно:

// bookmark_page.js, ver. 1.0
// visit: www.pdfhacks.com/bookmark...

// 2009-07-25 (Sat)
// slightly modified by Rashid Chembayev a.k.a. Lazytech
// to show the relevant submenu and messages in Russian

// use this delimiter for serializing our array
var bp_delim= '%#%#';

function SaveData( data ) {
// data is an array of arrays that needs
// to be serialized and stored into a persistent
// global string
var ds= '';
for( ii= 0; ii< data.length; ++ii ) {
for( jj= 0; jj< 3; ++jj ) {
if( ii!= 0 || jj!= 0 )
ds+= bp_delim;
ds+= data[ii][jj];
}
}
global.pdf_hacks_js_bookmarks= ds;
global.setPersistent( "pdf_hacks_js_bookmarks", true );
}

function GetData() {
// reverse of SaveData; return an array of arrays
if( global.pdf_hacks_js_bookmarks== null ) {
return new Array(0);
}

var flat= global.pdf_hacks_js_bookmarks.split( bp_delim );
var data= new Array();
for( ii= 0; ii< flat.length; ) {
var record= new Array();
for( jj= 0; jj< 3 && ii< flat.length; ++ii, ++jj ) {
record.push( flat[ii] );
}
if( record.length== 3 ) {
data.push( record );
}
}
return data;
}

function AddBookmark() {
// query the user for a name, and then combine it with
// the current PDF page to create a record; store this record
var label=
// app.response( "Bookmark Name:",
// "Bookmark Name",
app.response( "Название закладки:",
"Название закладки",
"",
false );
if( label!= null ) {
var record= new Array(3);
record[0]= label;
record[1]= this.path;
record[2]= this.pageNum;

data= GetData();
data.push( record );
SaveData( data );
}
}

function ShowBookmarks() {
// show a pop-up menu; this seems to only work when
// a PDF is alreay in the viewer;
var data= GetData();
var items= '';
for( ii= 0; ii< data.length; ++ii ) {
if( ii!= 0 )
items+= ', ';
items+= '"'+ ii+ ': '+ data[ii][0]+ '"';
}
// assemble the command and the execute it with eval()
var command= 'app.popUpMenu( '+ items+ ' );';
var selection= eval( command );
if( selection== null ) {
return; // exit
}

// the user made a selection; parse out its index and use it
// to access the bookmark record
var index= 0;
// toString() converts the String object to a string literal
// eval() converts the string literal to a number
index= eval( selection.substring( 0, selection.indexOf(':') ).toString() );
if( index< data.length ) {
try {
// the document must be 'disclosed' for us to have any access
// to its properties, so we use these FirstPage NextPage calls
//
app.openDoc( data[index][1] );
app.execMenuItem( "FirstPage" );
for( ii= 0; ii< data[index][2]; ++ii ) {
app.execMenuItem( "NextPage" );
}
}
catch( ee ) {
var response=
// app.alert("Error trying to open the requested document.\nShould I remove this bookmark?", 2, 2);
app.alert("Не получается открыть запрошенный документ!\nУдалить данную закладку?", 2, 2);
if( response== 4 && index< data.length ) {
data.splice( index, 1 );
SaveData( data );
}
}
}
}

function DropBookmark() {
// modelled after ShowBookmarks()
var data= GetData();
var items= '';
for( ii= 0; ii< data.length; ++ii ) {
if( ii!= 0 )
items+= ', ';
items+= '"'+ ii+ ': '+ data[ii][0]+ '"';
}
var command= 'app.popUpMenu( '+ items+ ' );';
var selection= eval( command );
if( selection== null ) {
return; // exit
}

var index= 0;
index= eval( selection.substring( 0, selection.indexOf(':') ).toString() );
if( index< data.length ) {
data.splice( index, 1 );
SaveData( data );
}
}

function ClearBookmarks() {
// if( app.alert("Are you sure you want to erase all bookmarks?", 2, 2 )== 4 ) {
if( app.alert("Вы действительно хотите удалить все закладки?", 2, 2 )== 4 ) {
SaveData( new Array(0) );
}
}

app.addMenuItem( {
cName: "-", // menu divider
cParent: "View", // append to the View menu
cExec: "void(0);" } );

app.addMenuItem( {
// cName: "Bookmark This Page &5",
cName: "Сделать закладку &5",
cParent: "View",
cExec: "AddBookmark();",
cEnable: "event.rc= (event.target != null);" } );

app.addMenuItem( {
// cName: "Go To Bookmark &6",
cName: "Открыть закладку &6",
cParent: "View",
cExec: "ShowBookmarks();",
cEnable: "event.rc= (event.target != null);" } );

app.addMenuItem( {
// cName: "Remove a Bookmark",
cName: "Удалить закладку",
cParent: "View",
cExec: "DropBookmark();",
cEnable: "event.rc= (event.target != null);" } );

app.addMenuItem( {
// cName: "Clear Bookmarks",
cName: "Удалить все закладки",
cParent: "View",
cExec: "ClearBookmarks();",
cEnable: "event.rc= true;" } );


Прямая ссылка на Zip-архив с оригинальным скриптом:
www.pdfhacks.com/bookmark...

Также см. приложенный Zip-архив с русифицированным скриптом.

Первоисточник: www.pdfhacks.com/bookmark...


Этот JS-код нужно сохранить в следующей папке: "C:\Documents and Settings\%USERNAME%\Application Data\Adobe\Acrobat\9.0\Javascripts" (по крайней мере, так обстоит дело в моем случае). Все закладки будут сохраняться в файле glob.js, который находится в той же папке "JavaScripts".


При необходимости разрешите выполнение JavaScript в Adobe Reader:
Ctrl + K -> JavaScript
Затем надо будет перезапустить Adobe Reader.


Как добавить закладку:
View -> Bookmark This Page
или в русской версии:
View -> Сделать закладку

Вместо этого можно использовать горячие клавиши:
Alt + V, 5

Откроется диалоговое окно, где нужно будет ввести название закладки, а потом нажать OK.

Чтобы воспользоваться имеющейся закладкой, важно, чтобы в Adobe Reader – так уж он устроен – был открыт (любой) документ!
Как открыть закладку:
View -> Go To Bookmark
или в русской версии:
View -> Открыть закладку

Вместо этого можно использовать горячие клавиши:
Alt + V, 6

Всплывет меню с названиями закладок, где можно будет выбрать нужную; после этого Adobe Reader откроет тот документ на той самой странице.

Как удалить закладку:
View -> Remove a Bookmark
или в русской версии:
View -> Удалить закладку

Всплывет меню с названиями закладок, где можно будет выбрать ту, которую нужно удалить.

При желании можно удалить сразу все закладки:
View -> Clear Bookmarks
или в русской версии:
View -> Удалить все закладки
art_designer Сообщение 25/07/2009 10:05 Копия темы
А в висте такой путь подойдет? C:\Users\username\AppData\Roaming\Adobe Просто папка апликайшен дата не открывается.
Lazytech Сообщение 25/07/2009 10:12 Копия темы
К сожалению, в Висте совершенно не разбираюсь, у меня WinXP.

В крайнем случае можно еще попробовать сделать глобальный поиск папки с названием "JavaScripts" (или файлов "glob.js" и "glob.settings.js", которые находятся в этой папке), а потом просто поместить в эту папку скрипт "bookmark_page_rus.js" (или "bookmark_page.js", если нужна оригинальная английская версия).

Могу еще поделиться самописным Forth-скриптом (работает под nnCron) для автоматической регистрации всех PDF-документов, просматриваемых в Adobe Reader. Он, правда, закладки делать не умеет, а только ведет текстовые логи.
art_designer Сообщение 25/07/2009 10:13 Копия темы
Вроде разобрался, щас буду пробовать как это работает)
Lazytech Сообщение 25/07/2009 10:15 Копия темы
Интересно, а где же нашлась папка "JavaScripts"?
art_designer Сообщение 25/07/2009 10:17 Копия темы
Папка жокумен и сетингс не открывается, но если в проводник скопировать путь C:\Documents and Settings\%USERNAME%\Application Data\Adobe\Acrobat\9.0\ то он все открывает))

В общем проверил, все работает шикарно, спасибо!
Lazytech Сообщение 25/07/2009 10:26 Копия темы
Пожалуйста :-) А то, что какие-то папки не открываются – это, случаем, не из-за настроек Висты по (не)отображению скрытых файлов и папок?
Напомню, что в Проводнике (Explorer) под WinXP можно разрешить отображение скрытых файлов и папок следующим образом:
Сервис -> Свойства папки -> Вид
Там нужно выставить "Показывать скрытые файлы и папки в "Скрытые файлы и папки".

Кстати, для таких случаев неплохо иметь под рукой Total Commander или Far (сам крайне редко использую Explorer для просмотра, копирования и перемещения файлов).
Lazytech Сообщение 25/07/2009 10:30 Копия темы
OFF Чуть не забыл – спасибо администрации Free-lance.ru за весьма оперативную доставку уведомлений о комментах в блогах :-)
Lazytech Сообщение 25/07/2009 11:19 Копия темы
Если интересно, выложил nnCron-скрипт для логирования просматриваемых PDF-файлов: www.free-lance.ru/blogs/v...
art_designer Сообщение 25/07/2009 12:46 Копия темы
Ну я привык к эксплореру. А не открываются не из-за этого, в свойствах папки я предварительно все разрешил.
Lazytech Сообщение 25/07/2009 12:57 Копия темы
А я и не предлагал полностью отказываться от встроенных программ, хотя любители пользоваться клавиатурой (а не мышью) обычно предпочитают какой-нибудь двухпанельный файловый менеджер :-)

К примеру, сам использую именно Explorer (вызываю по Win + E) для того, чтобы быстро посмотреть размер свободного места на логических дисках. Удобно, ничего не скажешь.
romavp Сообщение 26/05/2010 20:24 Копия темы
Спасибо работает, только как подправить чтоб не дублировалось на двух языках?
keep4u.ru/full/4f291477cd...
Lazytech Сообщение 27/05/2010 02:24 Копия темы
А там разве что-то дублируется? В той версии, что Вы видите, всё должно быть на русском. Ведь // означает, что код закомментирован.
romavp Сообщение 03/06/2010 03:21 Копия темы
Да я же скриншот сделал. clip2net.com/clip/m33056/... -так отображается на х64 машине. А на втором ПК х86, нормально только русская. Кстати если ставлю англ. вариант на х64 то отоброжается два раза на английском.
Lazytech Сообщение 03/06/2010 03:32 Копия темы
Даже не знаю, как помочь...

Пример:

// cName: "Bookmark This Page &5",
cName: "Сделать закладку &5",


Как видно, в начале строки с "Bookmark This Page &5" стоит знак комментария // .
То же самое — в других случаях. Возможно, у Вас добавлено два файла .js — к примеру, не только русифицированный, но и оригинальный? Если нет, то копайте у себя, а я никаких других причин возникновения указанной проблемы не вижу. Тему считаю закрытой.
0

©2008 edogs egods
Выразить восторг, поругаться
или предложить что-нибудь можно на форуме
Для обсуждения этого сервиса так же есть темы на фрилансе по
поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал"