emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bring up a screen giving option to open a series of orgmode files


From: Maxim Nikulin
Subject: Re: Bring up a screen giving option to open a series of orgmode files
Date: Wed, 2 Dec 2020 23:41:03 +0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0

2020-12-01 Jean Louis wrote:
* Maxim Nikulin [2020-11-30 20:10]:

To note is that not every PDF has text inside. They may be made from
images.

Images do not necessary mean absence of text. Tesseract can generate PDF files with text layer in addition to original scans.

and prepares `capturexpdf.sh' to be executable and contains following:

,----
| #!/bin/bash
| capture="/home/data1/protected/xpdfcaptured.org"
| entry=`zenity --entry`
| hyperlink="[[$1:$2][$entry]]"
| echo $hyperlink >> $capture
`----

Personally I am considering something like (not ready to use, just quick and dirty proof of concept)

------->8-----------
#!/bin/bash
set -e
set -o pipefail

getmeta() {
        file="$1"
        page="$2"
        sel_x="${3:-0}"
        sel_x="${sel_x%.*}"
        sel_y="${4:-0}"
        sel_y="${sel_y%.*}"
        sel_X="${5:-0}"
        sel_X="${sel_X%.*}"
        sel_Y="${6:-0}"
        sel_Y="${sel_Y%.*}"
        url="${7:-}"

        # FIXME obtain page height using pdfinfo
        page_height=792

        echo "[[${file}#page=${page}]]"
pdfinfo "$file" | sed -n -e 's/^\(CreationDate\|ModDate\|Author\|Title\|Subject\):\s*\([^ ]\)/- \1 :: \2/p'
        if [ -n "$sel_Y" ] ; then
                echo "#+begin_quote"
                pdftotext -layout -f "$page" -l "$page" \
-x "$sel_x" -y "$((page_height - sel_Y))" -W "$((sel_X-sel_x))" -H "$((sel_y-sel_Y))" "$file" - \
                   | sed -e 's/^[#*]/,&/' -e 's/\s*$//'
                echo "#+end_quote"
        fi
        if [ -n "$url" ] ; then
                echo -e "\n- Link: [[$url]]"
        fi
}

if [ -z "$1" ] || [ -z "$2" ] ; then
        echo "No file or page" 1>&2
        exit 1
fi

# or emacsclient calling org-capture
getmeta "$@" | xsel -b
--------->8---------

Unfortunately Xpdf quite slow works with large raster images. Evince better handles PDF files with wide spread problems (e.g. relying on fonts that are not embedded into the document) or with text in non UTF-8 encodings.

Surprisingly PDF viewers built in into browser have fences
preventing access of browser extensions to the text content. I did
not expect such limitations.

It does not sound as progress. Evince maybe originates from xpdf but
does not have nearly these options as xpdf. We go back and become more
beautiful with software but less useful.

Maybe it is possible to add necessary features to pdf.js and to serve the viewer from purely static site (no authorization and no API endpoints).

And finally, running browser under a different user is likely not enough.
Browser for working with "external" resources should be isolated from home
or office network (network namespace, container, virtual machine). There are
enough web sites that checks which ports are open at least on the localhost.
Local network could be scanned through browser as well.

I agree, only that it is not practical for majority of us. In my
opinion browsing machines should be separate with few sensitive
files if any.

https://stgraber.org/2014/02/09/lxc-1-0-gui-in-containers/
https://gudok.xyz/lxcdeb/

When I get
mobile device in my hand it allows me to share pictures to email,
chat, web server, to other file managers, and so on. Desktop operating
systems are not so well integrated as mobile systems.

Desktop has a convenient keyboard and a mouse to allow *authoring*, mobile devices are more limited in that sense, they are more suitable for *sharing* content generated by others or "liking" it. On desktop one could add a couple of valuable phrases in several seconds: why the item to share is important for particular person at particular moment, copy-paste is just a few more keystrokes.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]