12 травня, 2007

My pocketmod DIY hack

Привіт!

Знову пишу про те що змайстрував вчора.

Шукав всяке D.I.Y.-не надибав www.pocketmod.com ну і стало ж мені цікаво, що там і як воно працює. Згенерував на сайті я собі органайзер, склав, і подумав, що було б набагато краще, згенерувати таке собі самому! Під свої, вузкопрофільні потреби!

Багато є різних шаблонів, але то все не то, вирішив зробити сам.

З першу захотів зробити книжечку для читання. Оскільки в кишенькових органайзерах є місце для різноманітних книжок, то чому б думаю я не зробити для читання собі книжки текстів з нету, які не встигаєш читати за компом, друкувати жалко паперу (бо багато сторінок) і це не екологічно (так я назву свою "жадібність паперу") :)

Тож, до роботи!

Книжечка 8 сторінкова, така специфіка складання pocketmod. Працювати буду з psutils (є версія в L. і для W. також є) у кого немає той може взяти і почитати тут а версія для W. тут. Хто щасливий використовувати Debian робить

apt-get install psutils

Взагалі це дуже цікавий і корисний пакет, для роботи з PS та PDF файлами. Рекомендую прочитати статтю Андрія Носова про друк з psutils різних корисних А5 книжечок, написану ще 2004 року, і яка не втратила актуальність і зараз. За допомогою цієї статті я ознайомився з цим пакетом програм, та друкую тепер собі А5-книжки.

Так от, знову про pocketmod і мій D.I.Y-hack його на предмет генерації книжечок для читання за типом off-line e-book для мого off-line органайзера. :)

Щоб зробити одну 8-сторінкову книжечку потрібно з файлу ps книжечки якоїсь вибрати 8 сторінок (наприклад 1-8, 9-16, 17-24...) і роздрукувати. Як зробити PS-файл, спитає хтось...у всіх різні шляхи, але найпоширеніші:

  • надрукувати через віртуальний постскрипт-принтер (CUPS, Adobe та інші) з улюбленого ПЗ у ОС яка може це зробити (наприклад у L/W/M);
  • згенерувати за допомогою LaTeX (MiTeX, TeTeX, TeXLive) хто чим може (це окрема ступінь майстерності IT-користувача);
  • конвертувати готовий PDF (наприклад закачаний файл з мережі, чи згенерований з OpenOffice) чи будь якого ПЗ яке це може зробити;
  • за допомогою різноманітних маленьких програмок чи навіть великих :) головне отримати багато сторінковий ps-файл

Знову зійшов зі шляху через балачки. :) Треба з файлу вибрати перших 8 сторінок, робимо це так:

psselect -p1-8 knizhka.ps knizhka1-8.ps

(за допомогою psselect з пакету psutils вибрали (-р1-8) 8 сторінок з початку файла knizhka.ps та записали ці сторінки у новий файл knizhka1-8.ps)

Далі, оскільки друк 8 сторінок треба розташувати на 1 А4 листі, і 4 сторінки треба щоб були до гори ногами:) тоб то у перевернутому на 180 градусів вигляді, а також саме розміщення сторінок відбувається "ялинкою" (визначено дослідним шляхом!) то відформатуєм файл knizhka1-8.ps у такий спосіб, щоб при складанні pocketmod у нас вийшла нормальна послідовність сторінок. Послідовність визначена дослідженням, у процесі якого було знайдено декілька комбінацій (кому цікаво зможе експериментувати на файлі з нумерацією сторінок). Робимо:

psselect -p2,8,4,6,5,7,3,1 knizhka1-8.ps knizhka1-8_sort.ps

У нас вийшов ps-файл з необхідною послідовністю сторінок, але ще рано його друкувати, треба щоб 4 сторінки були на 180 градусів повернуті відносно інших 4-х.

Якщо подивитись на таблицю розміщення сторінок у pocketmod то можна побачити, що сторінки 1, 8, 7, 6 ідуть в нормальному вигляді, а 2, 3, 4, 5 у перевернутому. Файл knizhka1-8_sort.ps має послідовність сторінок 2,8,4,6,5,7,3,1 і о чудо! першою іде друга сторінка, третьою 4 і так далі, що дає нам можливість!!! повернуту всі не парні (ті що не діляться на 2:), ті що чьотниє і не чьотниє:) корочще кажучи 1,3,5,7) сторінки на 180 градусів 1 командою:

pstops -pa4 '2:0,1U(21cm,29.7cm)' knizhka1-8_sort.ps knizhka1-8_rotate.ps

(детальніше про роботу програми pstops читати тут або через пошук у одному з не багатьох пошуковому сервісі:) )

Якщо переглянемо файл knizhka1-8_rotate.ps то побачимо те що в нас вийшло, що в принципі і прагнули, повернути на 180 градусів 4 сторінки.

Далі справа за малим, надрукувати все це нарешті на листок

psbook knizhka1-8_rotate.ps | psnup -l -pa4 -8 -d1 >fine_knizhka1-8.ps

1. psbook - розкладає сторінки в порядку "ліва-права" та якщо файл не містить 8 сторінок додає пустих (тут додатково буде інформація нижче!!!));
2. Пропускаємо через "тунель(конвеєр)" | що дає змогу не створювати ще один проміжний файл;
3. psnup розкладає сторінки на 1 листок, у нашому випадку на сторінку
-pa4 --(багато інших є форматів якщо почитати документацію);
-8 -- вісім сторінок;
-l -- порядок розміщення листа (є також опція -r розміщує у зворотному)
-d1 -- робить рамку! навколо сторінки у 1 пункт для зручного складання
>fine_knizhka1-8.ps -- все вище означене пакує у цей файл
(детальніше про psnup читати тут ) взагалі рамку можна і не роботи, як показує досвід, для цього достатньо не вказувати -d взагалі, або позначити як-d0, але для початку, вона стане в нагоді при складанні

Всьо Чьотко!!! (с)Б.Г. :)

Книжечка майже готова!!!

Роздруковуємо файл fine_knizhka1-8.ps одним з можливих способів на папері та складаємо за офіційною інструкцією натиснувши кнопку Folding Guide або Video Instructions - кому який спосіб до вподоби або дивимся на зображення.

Таким самим чином роздрукуємо і інші сторінки з книжечки. Щоб не робити багато маніпуляцій :) напишем у одну магічну строчку:

psselect -p9-16 knizhka.ps | psselect -p2,8,4,6,5,7,3,1 | pstops -pa4 '2:0,1U(21cm,29.7cm)' | psbook | psnup -l -pa4 -8 -d1 >fine_knizhka9-16.ps


або "Безумству храбрых поём мы пестню.." (с)old movie and old life :) (хто автор цих строк? а? :))

psselect -p9-16 knizhka.ps | psselect -p2,8,4,6,5,7,3,1 | pstops -pa4 '2:0,1U(21cm,29.7cm)' | psbook | psnup -l -pa4 -8 -d1 | lp - зразу отримуємо роздруківку


(головне, все коректно написати і вдумливо :) перевірено мною на

psselect -p1-8 mirovoe_zlo.ps | psselect -p2,8,4,6,5,7,3,1 | pstops -pa4 '2:0,1U(21cm,29.7cm)' | psbook | psnup -l -pa4 -8 -d1 >fine_mirovoe_zlo1-8.ps

psselect -p9-16 mirovoe_zlo.ps | psselect -p2,8,4,6,5,7,3,1 | pstops-pa4 '2:0,1U(21cm,29.7cm)' | psbook | psnup -l -pa4 -8 -d1>fine_mirovoe_zlo9-16.ps

- все працює чудово, хоча спершу пропустив "U" що не крутило сторінки як мені потрібно :))

Щоб всі сторінки книжки зібрати в 1 файл для подальшого швидкого друку робимо

psmerge -oknizhka_pocketmod.ps fine_knizhka1-8.ps fine_knizhka9-16.ps fine_knizhka17-24.ps

отримуємо на виході файл knizhka_pocketmod.ps (зауважте опція -о без пробілу з іменем вихідного файла)

Бувають моменти, коли в кінці книжки лишається не 8 сторінок а меньше, у цьому випадку добре б було запастись файлом blank.ps який можна зробити з пустого файлу, або додати до нього якусь користну інформацію (у деяких книжках рятувались сторінками "Для заметок" :) ) я створив поки що собі простий пустий файл blank.ps і до файлу у якому не доставало 2 сторінки добавив їх. Наприклад у файлі mirovoe_zlo.ps 22 сторінки, а треба щоб було 24 (24/8=3 книжечки), то я пишу:

psmerge -omirovoe_zlo24.ps mirovoe_zlo.ps blank.ps blank.ps

(тупо, але поки не знайшов якогось толкового шляху вирішення цієї проблеми, бо якщо пропустити через psbook такий файл, то в непотрібному місці може з'явитись пусті сторінки)

Таким чином можливо друкувати любі тексти, креслення чи іншу цікаву інформацію для себе. Наприклад Apple та фани їх і тут відзначились випустивши книжечку-troubleshooting "My Mac Won`t Start!" у вигляді pocketmod.

Спробувавши різні розміри шрифтів для друку, прийшов до висновку, що найкраще використовувати розмір 16-18pt хоча і 14pt можна прочитати у кого "добрі" :) очі.

Все це можливо впакувати у скрипт та не мати клопоту більше з писаниною такою довгою команд, або у свою невеличку програмку, яка ще до того ж буде рахувати сторінки і аналізувати за Вас, шляхів для творчості багато бо це творчі інструменти для творчих людей у творчому світі. (про не творчі шляхи читати далі)

На цьому мабудь і кінець, хто дослучав (дочитав) той молодець:)

І на останок, якщо у Вас W. або M. система Ви можете зкачати з http://www.pocketmod.com/ new PDF to PocketMod converter!

і без напрягу згенерувати собі pocketmod-book який заманеться або зробити собі іграшку (до речі, іграшки також можуть бути в off-line органайзері!!! а як же без них)

Але ж.... це не шлях D.I.Y. - це вже інше :)

Бажаю Вам наснаги в роботі, та натхнення на втілення Ваших бажань!

В подальшому викладу свій органайзер та інші навороти до мого нового автономного low-tech PDA

Видаю на загальний доступ цю статтю у форматі pocketmod (PDF, 73Kb) для офф-лайн читання :)


:)

З повагою,

Федір Гонца


technorati tags:, ,

Blogged with Flock

2 коментарі:

frenzytechnix сказав...

Колись я робив переклад PocketMod російською (переклав текст у шаблонах та переробив порядок днів у календарях та деяких шаблонах - у американців неділя є першим днем) та додав до нього кілька власних шаблонів. Результат можна бачити на http://pocketmod.narod.ru/

Зараз я збираю побажання до наступної збірки ось тут: http://frenzytechnix.livejournal.com/9492.html
Якщо є що побажати, прошу.

Федір Гонца сказав...

:) так приемно отримати коментар від такої поважної людини!
Я знайшов Вашу працю на http://pocketmod.narod.ru/ і з повагою до цього вирішив підти трохи іншим шляхом, розширюючи діапазон можливостей, додаючи лише маленьку опцію :)
Дякую за коментар