On Mon, Nov 9, 2015 at 4:57 PM, Nick Dokos wrote: > Matt Price writes: > > > I would like to be able to insert into an org-buffer the text extracted > from a pdf file. PDF-Tools ( > > https://github.com/politza/pdf-tools/) provides some excellent tools > for doing this. I've written > > (well, msotly stolen) a defun that finds all my highlights and returns > them in the form of an org > > heading: > > > > (defun pdf-annot-export-as-org-heading (pdfpath) > > ...) > > ------------- > > > > I'm sure it is very clumsy, but it sort of works. I would like to be > able to call this function from a > > source block: > > > > #+BEGIN_SRC elisp > > (pdf-annot-export-as-org-heading > "/home/matt/HackingHistory/readings/latour-pandoras-hope.pdf") > > (pdf-annot-export-as-org-heading > "/home/matt/HackingHistory/readings/historical-authority-hampton.pdf") > > #+END_SRC > > > > The results are close to, but not precisely, what I want: > > > > #+RESULTS: > > #+begin_example > > ** historical-authority-hampton > > > > > ([[file:///home/matt/HackingHistory/readings/historical-authority-hampton.pdf] > > [historical-authority-hampton]], 1) > > > > In the Tudor palace at Hampton Court, there is a.... > > ... > > #+end_example > > > > (a) I only get the last command, because I guess :results value only > reports the final returned value. > > But :results output gets me nothing. What should I be doing? > > Have two source blocks? Or use :results output and output the string with > (princ string)? > I ended up with this. It's not so bad, Though I use it enough that I should probably just define another function. Also, I'm interested in how 2 source blocks would have worked... #+BEGIN_SRC elisp :results output raw (let ((sources '( "/home/matt/HackingHistory/readings/Troper-becoming-immigrant-city.pdf" "/home/matt/HackingHistory/readings/historical-authority-hampton.pdf")) (output "")) (dolist (thispdf sources) (message "this pdf is: %s" thispdf) (setq output (concat output (pdf-annot-markups-as-org-text thispdf )))) (princ output)) #+END_SRC > > > (b) the whole output is wrapped in an example block, which I don't > want. Can I do something to fix > > this? > > Maybe :results value raw or :results value verbatim - untested. I can > never remember the right combo off the top of my head. > :results value raw works -- thank you! > > > also, (c): I'd rather set the level of the org heading based on context. > Can I do that when I call from > > a source block? Should I maybe be doing this some other way (e.g., jsut > write an interactive function > > and call it with M-x? But I like being able to assemble all the readings > at one go, if possible. > > > > Pass the level as a parameter? > Can I pass the level of the current heading as a parameter, e.g.: #+BEGIN_SRC elisp :results output raw :var level=(1+ CURRENT-ORG-LEVEL) where obviously CURRENT-ORG-LEVEL is some function I don't know how to access? Many thanks for your help, Nick! > > -- > Nick > > > > >