Автор Гілка: Збереження сторінки, на якій ви зупинилися в Xpdf  (Прочитано 2710 раз)

Відсутній tech

  • Письменник
  • *****
  • дописів: 586
  • Карма: +1/-0
  • Гигик
Якщо хтось користується Xpdf (я - так, тому що він досить "легенький" і швидко завантажує документи), то це для вас.

Мені давно муляло, що в програмі не можна відкрити документ на тій сторінці, на якій закрив його останнього разу, тому я наважився написати розробнику (Derek B. Noonburg), який зараз підтримує Xpdf, і він був настільки люб'язний, що додав опцію %p для внутрішньої команди run() у Xpdf 3.03. Вона дозволяє вам викликати зовнішню команду, вказавши номер сторінки, на якій ви знаходитесь у дану мить.

Отже, якщо у вас встановлено Xpdf 3.03, то спробуйте додати наступну команду в ~/.xpdfrc:

  bind q any "run(xpdfsave -save %p '%f')" quit

Саму програмку xpdfsave - теж написану Дереком - ви знайдете в додатку (це сценарій на Perl). Помістіть його десь на вашому $PATH. Тепер при кожному виході з Xpdf за допомогою команди "q", xpdfsave зберігатиме в ~/.xpdfsave номер сторінки, на якій ви зупинилися, і назву файла. Для простоти ви можете додати наступний рядок у ~/.bashrc:

  alias xpdf="xpdfsave"

ВАДИ: xpdfsave не зберігає назви файлів, які містять пробіли. Якщо хтось добре курить Perl, то може підкаже, як можна швидко це виправити (мені для цього треба добре пововтузитись).

Ось і все.

« Змінено: 2012-05-24 18:29:40 від tech »

Відсутній Re.

  • Загальний модератор
  • Літератор
  • *****
  • дописів: 1898
  • Карма: +1/-0
"Остерігайся\ прогалини.pdf" ?!

Відсутній tech

  • Письменник
  • *****
  • дописів: 586
  • Карма: +1/-0
  • Гигик
Редаговано.

Справа була не в сценарії Perl, a у команді в .xpdfrc. Правильно так:

  bind q any "run(xpdfsave -save %p '%f')" quit

(додав одинарні лапки навколо %f). Або так:

  bind q any 'run(xpdfsave -save %p "%f")' quit

(на випадок, якщо назва файла містить одинарні лапки).
« Змінено: 2012-05-24 18:31:52 від tech »

Відсутній tech

  • Письменник
  • *****
  • дописів: 586
  • Карма: +1/-0
  • Гигик
"Остерігайся\ прогалини.pdf" ?!

Не вважаю пробіли (прогалини) злом. Назва файла може містити будь-які знаки крім '/'.

Відсутній Re.

  • Загальний модератор
  • Літератор
  • *****
  • дописів: 1898
  • Карма: +1/-0
Саме тому, щоб в деяких мовах, зокрема перл і баш, вивести знак \, потрібно написати "\\". Але я можливо не до кінця зрозумів проблеми відкриття файлів з пробілами.
« Змінено: 2012-05-24 19:27:30 від Re. »

Відсутній tech

  • Письменник
  • *****
  • дописів: 586
  • Карма: +1/-0
  • Гигик
Думав, що ви про те, що слід уникати пробілів у назвах файлів. Perl їх чудово відкриває з ARGV[], якщо пробіли екрановано на командному рядку. Тут команда run()  передала оболонці назву файла (%f) без екранації, тому пробіли розбили назву на багато лексем/аргументів, що викликає помилку в xpdfsave. Усе гаразд, одним словом.
« Змінено: 2012-05-24 23:07:41 від tech »