Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
####### # # E-scripts on scanning. # # Note 1: use the eev command (defined in eev.el) and the # ee alias (in my .zshrc) to execute parts of this file. # Executing this file as a whole makes no sense. # An introduction to eev can be found here: # # (find-eev-quick-intro) # http://angg.twu.net/eev-intros/find-eev-quick-intro.html # # Note 2: be VERY careful and make sure you understand what # you're doing. # # Note 3: If you use a shell other than zsh things like |& # and the for loops may not work. # # Note 4: I always run as root. # # Note 5: some parts are too old and don't work anymore. Some # never worked. # # Note 6: the definitions for the find-xxxfile commands are on my # .emacs. # # Note 7: if you see a strange command check my .zshrc -- it may # be defined there as a function or an alias. # # Note 8: the sections without dates are always older than the # sections with dates. # # This file is at <http://angg.twu.net/e/scan.e> # or at <http://angg.twu.net/e/scan.e.html>. # See also <http://angg.twu.net/emacs.html>, # <http://angg.twu.net/.emacs[.html]>, # <http://angg.twu.net/.zshrc[.html]>, # <http://angg.twu.net/escripts.html>, # and <http://angg.twu.net/>. # ####### # «.djview» (to "djview") # «.djview-default-page» (to "djview-default-page") # «.djview-page» (to "djview-page") # «.bmps-to-djvu» (to "bmps-to-djvu") # «.sane» (to "sane") # «.hplip» (to "hplip") # «.tesseract» (to "tesseract") # «.potrace» (to "potrace") # «.gocr» (to "gocr") # «.gscan2pdf» (to "gscan2pdf") # «.ocropus» (to "ocropus") # «.ocrfeeder» (to "ocrfeeder") # «.xsane-needs-root» (to "xsane-needs-root") # «.djvu2pdf» (to "djvu2pdf") # «.djvu-split» (to "djvu-split") # «.repacking-djvus» (to "repacking-djvus") # «.djvu-unpack» (to "djvu-unpack") # «.extract-pages» (to "extract-pages") # «.scantailor» (to "scantailor") # «.xsane-deb-src» (to "xsane-deb-src") # «.imgrep» (to "imgrep") # «.scanner.el» (to "scanner.el") # «.sng» (to "sng") # http://www.linux.com/archive/feature/138511 # http://www-sop.inria.fr/marelle/Vladimir.Komendantsky/djvu-HOWTO.html # http://www.gnurou.org/blog/2007/01/08/how_create_ebooks_linux # http://www.howtoforge.com/creating_djvu_documents_on_linux # (find-zsh "dmissing djvm") # (find-status "djvulibre-bin") # (find-vldifile "djvulibre-bin.list") # (find-udfile "djvulibre-bin/") # (find-man "1 djvu") # (find-man "1 djvu" "djvm(1)") # (find-man "1 djvu" "cjb2(1)") # (find-man "1 djvm" "djvm -c[reate] doc.djvu page1.djvu ... pageN.djvu") # (find-man "1 djvmcvt") # (find-man "1 cjb2" " -dpi n") # (find-man "1 cjb2" " -lossy") # (find-man "a djvm") # (find-man "1 djvu" "ddjvu(1)") # (find-man "1 ddjvu") # (find-man "1 djvused") ##### # # djview # 2013apr03 # ##### # «djview» (to ".djview") # (find-status "djview4") # (find-vldifile "djview4.list") # (find-udfile "djview4/") # (find-man "1 djview4") # (find-man "1 djview4") # (find-man "1 djview4" "-page=pagename") # (find-man "1 djview4" "-pageno=pagenumber") # (find-man "1 djview4" "key" "SHIFT+F1" "Activate the contextual help") # (find-man "1 djview4" "W" "Select the \"Fit Width\" zooming mode") # (find-man "1 djview4" "P" "Select the \"Fit Page\" zooming mode") # (find-man "1 djview4" "F11") # «djview-default-page» (to ".djview-default-page") # (find-fline "~/LUA/djview-hack.lua") # (find-es "unix" "find") # (find-sh "find ~ -mmin -20 2> /dev/null") # (find-fline "~/.config/DjVuLibre/DjView.conf") # (find-fline "~/.config/DjVuLibre/DjView.conf" "recentFiles=") # «djview-page» (to ".djview-page") # 2014mar05: neither "-page" nor "-pageno" work on wheezy * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) DJVU=$HOME/books/__comp/bentley__programming_pearls.djvu DJVU=$HOME/books/__logic/copi__introducao_a_logica.djvu ls -l $DJVU djview $DJVU djview -page=2 $DJVU djview -page=99 $DJVU djview -pageno=99 $DJVU djview -pageno=2 $DJVU djview -verbose -page=2 $DJVU djview -verbose -page=99 $DJVU djview -verbose -pageno=99 $DJVU djview -verbose -pageno=2 $DJVU djview --help djview -verbose -help djview -version djview4 --help evince --help evince --page-index=2 $DJVU evince -f --page-index=99 $DJVU evince -s --page-index=99 $DJVU evince -w --page-index=99 $DJVU evince -geometry +0+0 -s --page-index=99 $DJVU ##### # # Converting a series of PBMs (or BMPs) to a single DJVu file # 2010feb25 # ##### # «bmps-to-djvu» (to ".bmps-to-djvu") # (find-angg ".zshrc" "BMPtodjvu") # (find-fline "~/SCANS/") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd ~/SCANS/ convert lawvere70_001.bmp lawvere70_001.pbm file * cjb2 -dpi 600 -lossy lawvere70_001.pbm lawvere70_001.djvu laf for i in 001 002 003 004 005 006 007 008 009 010 011 012 013 014; do echo convert lawvere70_$i.bmp lawvere70_$i.pbm convert lawvere70_$i.bmp lawvere70_$i.pbm done for i in 001 002 003 004 005 006 007 008 009 010 011 012 013 014; do echo cjb2 -dpi 600 -lossy lawvere70_$i.pbm lawvere70_$i.djvu cjb2 -verbose -dpi 600 -lossy lawvere70_$i.pbm lawvere70_$i.djvu done djvm -create lawvere70.djvu lawvere70_*.djvu * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) # (find-fline "~/SCANS/caderno2/") # (find-man "1 convert") # (find-man "1 convert" "-despeckle") # (find-man "1 identify") # (find-man "1 ImageMagick") # (find-man "1 djvm") cd ~/SCANS/caderno2/ for i in *.BMP; do j=$(basename $i .BMP).pbm k=$(basename $i .BMP).djvu echo convert $i $j convert $i $j echo cjb2 -dpi 600 -lossy $j $k cjb2 -dpi 600 -lossy $j $k done djvm -create caderno.djvu caderno_*.djvu # (find-djvupage "~/SCANS/caderno2/caderno.djvu") cp -v caderno.djvu /tmp/pen/ # (find-sh "identify -list format") http://www.fileformat.info/format/bmp/egff.htm * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) # (find-fline "~/SCANS/HU/") cd ~/SCANS/HU/ for i in hu_*.BMP; do j=$(basename $i .BMP).pbm k=$(basename $i .BMP).djvu echo convert $i $j convert $i $j echo cjb2 -dpi 600 -lossy $j $k cjb2 -dpi 600 -lossy $j $k done djvm -create hu.djvu hu_*.djvu # (find-angg "SCANS/caderno1/Makefile") ##### # # sane # 2010mar14 # ##### # «sane» (to ".sane") # (find-zsh "availabledebs | sort | grep sane") # (find-status "sane") # (find-vldifile "sane.list") # (find-udfile "sane/") # (find-status "sane-utils") # (find-vldifile "sane-utils.list") # (find-udfile "sane-utils/") # (find-status "libsane") # (find-vldifile "libsane.list") # (find-vldifile "libsane.list" "/usr/share/man/man5/") # (find-udfile "libsane/") # (find-status "libsane-extras") # (find-vldifile "libsane-extras.list") # (find-udfile "libsane-extras/") # (find-man "7 sane") # (find-man "8 saned") # (find-man "1 sane-find-scanner") # (find-man "1 scanimage") # (find-man "1 gamma4scanimage") # (find-man "5 sane-net") # (find-man "5 sane-hp") # (find-man "5 sane-hp4200") # http://www.xsane.org/xsane-introduction.html # http://hplipopensource.com/hplip-web/index.html # (find-man "1 xscanimage") # (find-fline "~/.sane/xsane/") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) sane-find-scanner -v # (find-sh "sane-find-scanner -v") # (find-man "scanimage") scanimage -L # (find-fline "/etc/sane.d/") hplip ##### # # hplip # 2010nov20 # ##### # «hplip» (to ".hplip") # (find-sh "grep-aptavail -P hplip") # (find-status "hplip") # (find-vldifile "hplip.list") # (find-udfile "hplip/") # (find-status "hplip-cups") # (find-vldifile "hplip-cups.list") # (find-udfile "hplip-cups/") # (find-status "hplip-data") # (find-vldifile "hplip-data.list") # (find-udfile "hplip-data/") # (find-status "hplip-dbg") # (find-vldifile "hplip-dbg.list") # (find-udfile "hplip-dbg/") # (find-status "hplip-doc") # (find-vldifile "hplip-doc.list") # (find-udfile "hplip-doc/") # (find-status "hplip-gui") # (find-vldifile "hplip-gui.list") # (find-udfile "hplip-gui/") # (find-fline "/usr/share/ppd/hplip/HP/") # (find-fline "/usr/share/doc/hplip-doc/HTML/") # file:///usr/share/doc/hplip-doc/HTML/index.html # file:///usr/share/doc/hplip-doc/HTML/hpscan.html # file:///usr/share/doc/hplip-doc/HTML/scanning.html apti hplip hplip-cups hplip-data hplip-dbg hplip-doc hplip-gui ##### # # Tesseract # 2010sep29 # ##### # «tesseract» (to ".tesseract") # https://en.wikipedia.org/wiki/Tesseract_(software) # http://code.google.com/p/tesseract-ocr/ http://code.google.com/p/tesseract-ocr/wiki/ReadMe http://code.google.com/p/tesseract-ocr/downloads/list apti tesseract-ocr tesseract-ocr-eng tesseract-ocr-por # (find-status "tesseract-ocr") # (find-vldifile "tesseract-ocr.list") # (find-udfile "tesseract-ocr/") # (find-status "tesseract-ocr-eng") # (find-vldifile "tesseract-ocr-eng.list") # (find-udfile "tesseract-ocr-eng/") # (find-status "tesseract-ocr-por") # (find-vldifile "tesseract-ocr-por.list") # (find-udfile "tesseract-ocr-por/") # (find-man "1 tesseract") # (find-man "1 wordlist2dawg") # (find-man "1 mftraining") # (find-man "1 unicharset_extractor") # (find-man "1 cntraining") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd /tmp/scans/ laf convert p049.jpg p049.tif laf tesseract p049.tif p049.txt -l por * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd /tmp/scans/ laf convert p049.jpg -resize 25% p049_4.jpg convert p049.jpg -resize 50% p049_2.jpg convert p049_4.jpg p049_4.tif convert p049_4.jpg p049_2.tif laf p049*.jpg laf p049*.tif tesseract p049_4.tif p049_4 -l por tesseract p049_2.tif p049_2 -l por xzgv & -x -f 50 -t 0.02. ##### # # Thresholding images for tesseract # 2010oct23 # ##### # Two quotes from # <http://www.mscs.dal.ca/~selinger/ocr-test/>: # From each original color image, I also produced two thresholded # bitonal images. The first bitonal image was obtained by naively # thresholding the color image at a grey level of 0.5. The second # bitonal image was obtained by a custom method which first applied a # highpass filter with a radius of 50 pixels, and then thresholded at # a grey value of 0.02. The custom filtering and thresholding was done # using the mkbitmap program, using the parameters -x -f 50 -t 0.02. # The intention of the custom thresholding method was to produce a # lighter image, thereby increasing separation between individual # letters. # In terms of accuracy, Tesseract vastly outperforms both Ocrad and # GOCR on bitonal images. But strangely, Tesseract is completely # useless on input that is not bitonal, so one should always threshold # the input first. The actual thresholding method used seems almost # irrelevant, which makes me wonder why Tesseract doesn't simply # threshold its non-bitonal input internally. # http://www.mscs.dal.ca/~selinger/ocr-test/ # http://www.mscs.dal.ca/~selinger/potrace/mkbitmap.html # http://www.mscs.dal.ca/~selinger/potrace/ # http://www.mscs.dal.ca/~selinger/potrace/potrace.pdf # (find-status "potrace") # (find-vldifile "potrace.list") # (find-udfile "potrace/") # (find-man "1 mkbitmap") # (find-man "5 pnm") # (find-man "5 pgm") # http://www.mscs.dal.ca/~selinger/software.html # http://www.mscs.dal.ca/~selinger/ocr-test/ # http://potrace.sourceforge.net/ # http://potrace.sourceforge.net/potrace.pdf * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd /tmp/scans/ convert p049_2.jpg p049_2.pgm laf p049* mkbitmap -x -f 50 -t 0.02 -o p049_2.pbm p049_2.pgm mkbitmap -x -f 50 -t 0.1 -o p049_2.pbm p049_2.pgm mkbitmap -x -f 50 -t 0.2 -o p049_2.pbm p049_2.pgm mkbitmap -x -f 50 -t 0.3 -o p049_2.pbm p049_2.pgm mkbitmap -x -f 50 -t 0.4 -o p049_2.pbm p049_2.pgm xzgv p049_2.pbm & xzgv & convert p049.jpg -resize 25% p049_4.jpg for ORIGSTEM in p050 p051; do STEM=${ORIGSTEM}_4 echo $ORIGSTEM echo $STEM echo convert $ORIGSTEM.jpg -resize 25% $STEM.jpg convert $ORIGSTEM.jpg -resize 25% $STEM.jpg echo convert $STEM.jpg $STEM.pgm convert $STEM.jpg $STEM.pgm echo mkbitmap -x -f 50 -t 0.4 $STEM.pgm -o $STEM.pbm mkbitmap -x -f 50 -t 0.4 $STEM.pgm -o $STEM.pbm # xzgv $STEM.pbm & echo convert $STEM.pbm $STEM.tif convert $STEM.pbm $STEM.tif echo tesseract $STEM.tif $STEM -l por tesseract $STEM.tif $STEM -l por done # (find-fline "/tmp/scans/" "p049.txt") # (find-fline "/tmp/scans/" "p049_4.txt") # (find-angg "SCANS/Makefile") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd ~/SCANS/serfelizhoje/ laf make -f ../Makefile p049.4por make -f ../Makefile p049_4.jpg make -f ../Makefile p049_4.por.txt make -f ../Makefile p0{49,50,51,52,53,54,55,56,57,58,59}.4por for i in p0{49,50,51,52,53,54,55,56,57,58,59}; do make -f ../Makefile ${i}_4.jpg ${i}_4.por.txt done cd ~/SCANS/serfelizhoje/ for i in p0{49,50,51,52,53,54,55,56,57,58,59}; do make -f ../Makefile ${i}_4_400.djvu done laf cd ~/SCANS/serfelizhoje/ rm -v all.djvu all.pdf make -f ../Makefile all.djvu all.pdf djvm -create p.djvu p???_4_400.djvu # (find-fline "~/SCANS/serfelizhoje/") # (find-djvupage "~/SCANS/serfelizhoje/all.djvu") # (find-pdf-page "~/SCANS/serfelizhoje/all.pdf") # How do I add the OCRed text to the dvju and to the pdf? # (find-angg "SCANS/") # (find-angg "SCANS/Makefile") # (find-angg "SCANS/serfelizhoje/") # (find-efunction 'find-eeshell) # (find-eeshell "cp -v /tmp/scans/p050.jpg .\nlaf\nmake p050.4por\nlaf") convert p049_2.pbm p049_2.tif tesseract p049_2.tif p049_2 -l por convert p049.jpg -scale 0.25 p049_4.jpg file * # (find-man "ImageMagick") # (find-man "convert") tesseract imagename outputbase [configfile] [-l <langid>] # (find-fline "/usr/bin/ocroscript") # (find-man "1 ocroscript") http://ftp.de.debian.org/debian/pool/main/t/tesseract-eng/tesseract-eng_2.00-1.dsc ##### # # potrace # 2020feb14 # ##### # «potrace» (to ".potrace") # http://potrace.sourceforge.net/potrace.pdf # (code-pdf-page "potrace" "$S/http/potrace.sourceforge.net/potrace.pdf") # (code-pdf-text "potrace" "$S/http/potrace.sourceforge.net/potrace.pdf") # (find-potracepage) # (find-potracetext) # (find-man "1 potrace") # (find-sh "potrace --help") http://potrace.sourceforge.net/potracelib.pdf http://potrace.sourceforge.net/ https://cscott.net/Projects/Mallard/ stained glass https://esslab.jp/~ess/en/research/sketch/ ##### # # GOCR # 2010sep29 # ##### # «gocr» (to ".gocr") # (find-status "gocr") # (find-vldifile "gocr.list") # (find-udfile "gocr/") ##### # # gscan2pdf # 2010oct22 # ##### # «gscan2pdf» (to ".gscan2pdf") # http://gscan2pdf.sourceforge.net/ # (find-status "gscan2pdf") # (find-vldifile "gscan2pdf.list") # (find-udfile "gscan2pdf/") # (find-man "1p gscan2pdf") # (find-man "1p scanimage-perl") # (find-man "1p scanadf-perl") ##### # # ocropus # 2010oct22 # ##### # «ocropus» (to ".ocropus") # http://code.google.com/p/ocropus/ # http://groups.google.com/group/ocropus # http://groups.google.com/group/ocropus/web # http://code.google.com/p/ocropus/wiki/ReleaseNotes # (find-status "ocropus") # (find-vldifile "ocropus.list") # (find-udfile "ocropus/") # (find-THLsh "grep -i ocr $(find * | grep Makefile)") # (find-THLsh "grep -i ocr $(find * -type f)") # (find-THLsh "grep -i tesseract $(find * -type f)") # (to "tesseract") ##### # # ocrfeeder # 2016may23 # ##### # «ocrfeeder» (to ".ocrfeeder") # (find-status "ocrfeeder") # (find-vldifile "ocrfeeder.list") # (find-udfile "ocrfeeder/") ##### # # XSane can only use the scanner as root # 2010oct22 # ##### # «xsane-needs-root» (to ".xsane-needs-root") # (find-angg ".emacs" "scan") # https://bugs.launchpad.net/ubuntu/+source/system-config-printer/+bug/545737 # http://ubuntuforums.org/showthread.php?t=1337039 # http://www.yolinux.com/TUTORIALS/LinuxTutorialScanners.html scanimage -L # (find-man "lsusb") # (find-man "xsane") http://ubuntuforums.org/showthread.php?t=507621 * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) lsusb ls -l /dev/bus/usb/*/* lpstat -v lpinfo -v sane-find-scanner scanimage -L hp-check -r hp-info -i # http://hplip.sourceforge.net/install/index.html su -c "apt-get install --force-yes -y python-qt4-dbus" su -c "apt-get install --force-yes -y python-reportlab" apti python-qt4-dbus apti python-reportlab # (find-man "groups") # (find-man "5 group") # (find-node "(coreutils)groups invocation") # http://en.wikipedia.org/wiki/Group_identifier_%28Unix%29 # (find-fline "/etc/group") # (find-man "adduser" "Add an existing user to an existing group") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) sudo adduser edrx lp groups # (find-sh "sort < /etc/group") # (find-sh "sort < /etc/group | grep lp") # (find-sh "sort < /etc/group | grep edrx") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) system-config-printer #8 I was able to detect my HP Photosmart C4700 using the command ' hp-probe -bnet hp-probe # (find-man "1 hp-probe") ##### # # djvu2pdf # 2010apr10 # ##### # «djvu2pdf» (to ".djvu2pdf") # http://0x2a.at/static/site/projects/djvu2pdf/djvu2pdf_0.9.1_all.deb # http://0x2a.at/static/site/projects/djvu2pdf/djvu2pdf-0.9.1.tar.gz # https://0x2a.at/site/projects/djvu2pdf/djvu2pdf_0.9.2-1_all.deb # http://www.0x2a.at/s/projects/djvu2pdf * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) # sudo dpkg -i $S/http/0x2a.at/static/site/projects/djvu2pdf/djvu2pdf_0.9.1_all.deb sudo dpkg -i $S/https/0x2a.at/site/projects/djvu2pdf/djvu2pdf_0.9.2-1_all.deb # (find-status "djvu2pdf") # (find-vldifile "djvu2pdf.list") # (find-udfile "djvu2pdf/") # (find-udfile "djvu2pdf/copyright") # (find-fline "/usr/bin/djvu2pdf") # (find-man "1 djvu2pdf") # (find-man "1 ddjvu") # (find-man "1 djvudump") # (find-angg ".emacs" "caderno") # (find-caderno2page 22 "C2" "Exercícios de Integral de Riemann") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) mkdir /tmp/cad/ cd /tmp/cad/ cp -v ~/SCANS/caderno2/caderno.djvu . # (find-man "1 djvm") # (find-man "1 ddjvu") ddjvu -format=pdf -page=22 caderno.djvu 2009nov16-int-riemann.pdf # (find-pdf-page "/tmp/cad/2009nov16-int-riemann.pdf") # (find-fline "/tmp/cad/") # http://angg.twu.net/2010.1/2009nov16-int-riemann.pdf # (find-man "1 djvuextract") # (find-man "1 ddjvu") # (find-angg ".zshrc" "BMPtodjvu") # (find-fline "~/SCANS/caderno3/") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd ~/SCANS/caderno3/ laf *.BMP BMPtodjvu caderno3_*.BMP djvm -create caderno3.djvu caderno3_*.djvu ddjvu -format=pdf -page=1,2 caderno3.djvu C2_exercicios_2010aug25.pdf # (find-fline "~/SCANS/caderno3/") # (find-djvupage "~/SCANS/caderno3/caderno3.djvu") # (find-pdf-page "~/SCANS/caderno3/C2_exercicios_2010aug25.pdf") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd ~/SCANS/caderno3/ laf *.BMP BMPtodjvu caderno3_0{08,09,10}.BMP djvm -create C2_exercicios_2010sep05.djvu caderno3_0{08,09}.djvu ddjvu -format=pdf C2_exercicios_2010sep05.djvu C2_exercicios_2010sep05.pdf djvm -create MD_props_e_lemas_2010sep08.djvu caderno3_010.djvu ddjvu -format=pdf MD_props_e_lemas_2010sep08.djvu MD_props_e_lemas_2010sep08.pdf * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) # (find-fline "~/SCANS/2010sep15/") cd ~/SCANS/2010sep15/ file * convert C2_exercicios_2010sep15.png C2_exercicios_2010sep15.BMP BMPtodjvu C2_exercicios_2010sep15.BMP laf ddjvu -format=pdf C2_exercicios_2010sep15.djvu C2_exercicios_2010sep15.pdf laf set | grep -ai angg # (find-man "1 grep" "-a, --text") # (find-angg ".emacs" "tramp-twu") # (code-c-d "tmp" "/tmp/") # (find-code-c-d "tmp" "/tmp/") # (find-node "(eshell)Command arguments") # (find-node "(eshell)Invocation") # (find-node "(eshell)Built-ins") * (eepitch-eshell) * (eepitch-kill) * (eepitch-eshell) cd ~/SCANS/2010sep15/ cp -v C2_exercicios_2010sep15.djvu (ee-tmpfile "") cp -v C2_exercicios_2010sep15.djvu /tmp/pen/ cd /tmp/pen/ ddjvu -format=pdf C2_exercicios_2010sep15.djvu C2_exercicios_2010sep15.pdf cp -v /tmp/pen/C2_exercicios_2010sep15.djvu (ee-twusfile "C2/") cp -v /tmp/pen/C2_exercicios_2010sep15.pdf (ee-twusfile "C2/") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd ~/SCANS/caderno3/ laf BMPstopdf C2_exercicios_2010sep15 foo_00{1,2}.BMP BMPstopdf C2_P1_2010sep22 foo_00{3,4}.BMP # (find-fline "~/SCANS/caderno3/") * (eepitch-eshell) * (eepitch-kill) * (eepitch-eshell) # (find-fline "~/SCANS/caderno3/") # (find-twusfile "C2/") cd ~/SCANS/caderno3/ cp -v C2_exercicios_2010sep15.djvu (ee-twusfile "C2/") cp -v C2_exercicios_2010sep15.pdf (ee-twusfile "C2/") cp -v C2_P1_2010sep22.djvu (ee-twusfile "C2/") cp -v C2_P1_2010sep22.pdf (ee-twusfile "C2/") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd ~/SCANS/univ_form_cid/ laf BMPstopdf hch_e_rinesi hch*.BMP rinesi*.BMP BMPstopdf C2_P1_2010sep22 foo_00{3,4}.BMP # (find-fline "~/SCANS/caderno3/") # (find-fline "~/SCANS/univ_form_cid/") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd ~/SCANS/caderno3/ BMPstopdf caderno3_012to015_tmp caderno3_0{12,13,14,15}*.BMP ##### # # pdf2djvu # 2013may04 # ##### # «pdf2djvu» (to ".pdf2djvu") # (find-status "pdf2djvu") # (find-vldifile "pdf2djvu.list") # (find-udfile "pdf2djvu/") # (find-man "1 pdf2djvu") # (find-man "1 pdf2djvu" "--lossy") # (find-man "1 pdf2djvu" "--loss-level=n") # (find-man "1 cjb2" "-losslevel x") cd /tmp/books/ nice pdf2djvu -v --lossy \ -o thucydides_hobbes_grene__the_peloponnesian_war.djvu \ thucydides_hobbes_grene__the_peloponnesian_war.pdf \ cd /tmp/books/ nice pdf2djvu -v --loss-level=150 \ -o thucydides_hobbes_grene__the_peloponnesian_war_150.djvu \ thucydides_hobbes_grene__the_peloponnesian_war.pdf \ cd /tmp/books/ nice pdf2djvu -v --loss-level=190 \ -o thucydides_hobbes_grene__the_peloponnesian_war_190.djvu \ thucydides_hobbes_grene__the_peloponnesian_war.pdf \ # (find-fline "/tmp/books/") ##### # # split djvu into pages # 2015dec09 # ###### # «djvu-split» (to ".djvu-split") # http://unix.stackexchange.com/questions/20592/extract-several-pages-from-a-djvu-file # (find-man "1 djvused") # Extract and save each page in its own file pages=$(djvused -e 'n' "$if") for ((i=1; i<=$pages; i++)) ;do of="${if%.*}.$(printf "%03d" $i).djvu" djvused -e "select $i; save-page-with \"$of\"" "$if" done ##### # # Repacking djvus (several into one) # 2011mar03 # ##### # «repacking-djvus» (to ".repacking-djvus") # «djvu-unpack» (to ".djvu-unpack") # (find-es "scan" "djvu2pdf") # (find-zsh "dmissing djvu | grep pdf") # (find-man "1 pdf2djvu") # (find-fline "$S/http/angg.twu.net/MD/") # (find-fline "/tmp/djvus-md1/") # (find-sh "djvused") # (find-sh "djvused" "select <id>") # (find-fline "/tmp/") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd /tmp/ pdf2djvu -o MD_exercicios_2010mar29.djvu MD_exercicios_2010mar29.pdf * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd $S/http/angg.twu.net/MD/ A=( MD_exercicios_2010mar29.djvu MD_exercicios_2010mar29_gabarito.djvu MD_props_e_lemas_2010sep08.djvu MD_sists_dedutivos_2010nov17.djvu MD_sists_dedutivos_2010nov21.djvu MD_P1_2010oct06.djvu MD_P2_2010nov29.djvu MD_P3_2010dec06.djvu MD_VR_2010dec10.djvu MD_VS_2010dec13.djvu ) rm -Rv /tmp/djvus-md0/ mkdir /tmp/djvus-md0/ cp -v $A /tmp/djvus-md0/ cd /tmp/djvus-md0/ for i in $A; do echo "$i:"; djvused -e 'ls' $i; done for i in $A; do echo "$i:"; djvused -e 'n' $i; done rm -Rv /tmp/djvus-md1/ mkdir /tmp/djvus-md1/ cd /tmp/djvus-md1/ npage=0 for fname_djvu in $A; do dir_fname_djvu=/tmp/djvus-md0/$fname_djvu npages=$(djvused -e 'n' $dir_fname_djvu) echo "$dir_fname_djvu: $npages" for i in $(seq 1 $npages); do npage=$[$npage+1] npage_djvu=$(printf "p%03d.djvu" $npage) # djvused -e "select $i; save-page $npage_djvu" $dir_fname_djvu djvused -e "select $i; save-page-with $npage_djvu" $dir_fname_djvu done done # make -f ~/SCANS/Makefile all.djvu djvm -create all.djvu p*.djvu * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd $S/http/angg.twu.net/MD/ A=( MD_exercicios_2010mar29.djvu MD_exercicios_2010mar29_gabarito.djvu MD_props_e_lemas_2010sep08.djvu MD_P1_2010oct06.djvu MD_sists_dedutivos_2010nov17.djvu MD_sists_dedutivos_2010nov21.djvu MD_P2_2010nov29.djvu MD_P3_2010dec06.djvu MD_VR_2010dec10.djvu MD_VS_2010dec13.djvu ) rm -Rv /tmp/djvu-u/ mkdir /tmp/djvu-u/ cd /tmp/djvu-u/ for i in $A; do cp -v $S/http/angg.twu.net/MD/$i /tmp/djvu-u/; done cd /tmp/djvu-u/ djvu-unpack $A djvu-repack /tmp/foo.djvu # (find-djvupage "/tmp/foo.djvu") Falta a prova para monitor. echo "$i:"; djvused -e 'ls' $i; done ##### # # Extracting a few pages from a djvu # 2012mar20 # ##### # «extract-pages» (to ".extract-pages") # (find-angg "SCANS/Makefile" "extract-page") # (find-angg ".zshrc" "djvu-unpack") # (find-angg "genericfigures/README") # (find-twusfile "genericfigures/") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cp -v ~/SCANS/caderno2/caderno.djvu /tmp/ cd /tmp/ djvused -e "select 51; save-page-with eduardo_ochs_RRZ_notes_2009.djvu" caderno.djvu make -f ~/SCANS/Makefile eduardo_ochs_RRZ_notes_2009.pdf ##### # # Scantailor # 2012sep21 # ##### # «scantailor» (to ".scantailor") # http://sourceforge.net/apps/mediawiki/scantailor/index.php?title=Building_from_source_code_on_Linux_and_Mac_OS_X # http://scantailor.sourceforge.net/ # (find-fline "~/tmp/scantailor-0.9.11.1.tar.gz") #* rm -Rv ~/usrc/scantailor-0.9.11.1/ tar -C ~/usrc/ -xvzf \ ~/tmp/scantailor-0.9.11.1.tar.gz cd ~/usrc/scantailor-0.9.11.1/ #* # (code-c-d "scantailor" "~/usrc/scantailor-0.9.11.1/") # (find-scantailorfile "") ##### # # xsane (from the debian sources) # 2013may23 # ##### # «xsane-deb-src» (to ".xsane-deb-src") # (find-es "gimp" "scanning") # http://ftp.de.debian.org/debian/pool/main/x/xsane/ # http://ftp.de.debian.org/debian/pool/main/x/xsane/xsane_0.998-4.dsc # http://ftp.de.debian.org/debian/pool/main/x/xsane/xsane_0.998-4.debian.tar.gz # http://ftp.de.debian.org/debian/pool/main/x/xsane/xsane_0.998.orig.tar.gz #* rm -Rv ~/usrc/xsane/ mkdir ~/usrc/xsane/ cd $S/http/ftp.de.debian.org/debian/pool/main/x/xsane/ cp -v xsane_0.998* ~/usrc/xsane/ cd ~/usrc/xsane/ dpkg-source -sn -x xsane_0.998-4.dsc cd ~/usrc/xsane/xsane-0.998/ dpkg-buildpackage -us -uc -b -rfakeroot |& tee odb #* # (find-fline "~/usrc/xsane/") * (eepitch-shell) cd ~/usrc/xsane/ sudo dpkg -i *.deb #* # (code-c-d "xsane" "~/usrc/xsane/xsane-0.998/") # (find-xsanefile "") ##### # # imgrep - a grep for images # 2020jan16 # ##### # «imgrep» (to ".imgrep") # https://github.com/keeferrourke/imgrep ##### # # scanner.el # 2020dec14 # ##### # «scanner.el» (to ".scanner.el") ##### # # sng -- a compiler for an editable PNG representation # 2021jun21 # ##### # «sng» (to ".sng") # (find-status "sng") # (find-vldifile "sng.list") # (find-udfile "sng/") # https://github.com/axot/SNG # http://angg.twu.net/GA/GA_teste1_2011apr07.djvu # http://angg.twu.net/GA/GA_P1_2011may19.djvu # http://angg.twu.net/GA/GA_P1_2011jun01.djvu # http://angg.twu.net/GA/GA_lista_2011jun09.djvu # http://angg.twu.net/GA/GA_exercicios_2011jun16.djvu # http://angg.twu.net/GA/GA_miniteste_2011jul06.djvu # http://angg.twu.net/GA/GA_P2_2011jul07.djvu # http://angg.twu.net/GA/GA_VS_2011jul14.djvu http://www.diybookscanner.org/ http://stevelosh.com/blog/2011/05/paper-free/ http://ryanwaggoner.com/2010/11/how-i-filled-two-dumpsters-and-went-paperless-with-the-fujitsu-scansnap-s1500/ http://www.jboecker.de/2010/04/14/general-reference-filing-with-org-mode.html#sec-5 https://news.ycombinator.com/item?id=30760850 Vuescan – Software support for 6500 abandoned scanners (hamrick.com) https://news.ycombinator.com/item?id=32539455 LibGen's Bloat Problem (liberalgeneral.neocities.org) # Local Variables: # coding: utf-8-unix # End: