pdf winforms c# : Extract data out of pdf file control software system azure winforms .net console org25-part1617

Appendix A: Hacking
240
A.6 Tables and lists in arbitrary syntax
Since Orgtbl mode can be used as a minor mode in arbitrary buffers, a frequent feature
request has been to make it work with native tables in specific languages, for example LAT
E
X.
However, this is extremely hard to do in a general way, would lead to a customization
nightmare, and would take away much of the simplicity of the Orgtbl mode table editor.
This appendix describes a different approach. We keep the Orgtbl mode table in its
native format (the source table), and use a custom function to translate the table to the
correct syntax, andto install it in the right location (the target table). This puts the burden
of writing conversion functions on the user, but it allows for a very flexible system.
Bastien addedthe ability todo the same with lists, inOrgstruct mode. Youcan use Org’s
facilities to edit and structure lists by turning orgstruct-mode on, then locally exporting
such lists in another format (HTML, L
A
T
E
Xor Texinfo.)
A.6.1 Radio tables
To definethe location of thetarget table, you first need tocreate two lines that are comments
in the current mode, but contain magic words BEGIN/END RECEIVE ORGTBL for Orgtbl mode
to find. Orgtbl mode will insert the translated table between these lines, replacing whatever
was there before. For example in C mode where comments are between /* ... */:
/* BEGIN RECEIVE ORGTBL table_name */
/* END RECEIVE ORGTBL table_name */
Just above the source table, we put a special line that tells Orgtbl mode how to translate
this table and where to install it. For example:
#+ORGTBL: SEND table_name translation_function arguments...
table_name is the reference name for the table that is also used in the receiver lines.
translation_function is the Lisp function that does the translation. Furthermore, the
line can contain a list of arguments (alternating key and value) at the end. The arguments
will be passed as a property list to the translation function for interpretation. A few
standard parameters are already recognized and acted upon before the translation function
is called:
:skip N
Skip the first N lines of the table. Hlines do count as separate lines for this
parameter!
:skipcols (n1 n2 ...)
List of columns that should be skipped. If the table has a column with calcu-
lation marks, that column is automatically discarded as well. Please note that
the translator function sees the table after the removal of these columns, the
function never knows that there have been additional columns.
The one problem remaining is how to keep the source table in the buffer without disturbing
the normal workings of the file, for example during compilation of a C file or processing of
aLAT
E
Xfile. There are a number of different solutions:
 The table could be placed in a block comment if that is supported by the language.
For example, in C mode you could wrap the table between ‘/*’ and ‘*/’ lines.
 Sometimes it is possible to put the table after some kindof END statement, for example
‘\bye’ in T
E
Xand ‘\end{document}’ in L
A
T
E
X.
Extract data out of pdf file - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
extract pdf data to excel; vb extract data from pdf
Extract data out of pdf file - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
export excel to pdf form; extracting data from pdf forms to excel
Appendix A: Hacking
241
 You can just comment the table line-by-line whenever you want to process the file,
and uncomment it whenever you need to edit the table. This only sounds tedious—the
command M-x orgtbl-toggle-comment RET makes this comment-toggling very easy,
in particular if you bind it to a key.
A.6.2 A L
A
T
E
Xexample of radio tables
The best way to wrap the source table in LAT
E
Xis to use the comment environment pro-
vided by comment.sty. It has to be activated by placing \usepackage{comment} into the
document header. Orgtbl mode can insert a radio table skeleton
2
with the command M-x
orgtbl-insert-radio-table RET. You will be prompted for a table name, let’s say we use
‘salesfigures’. You will then get the following template:
% BEGIN RECEIVE ORGTBL salesfigures
% END RECEIVE ORGTBL salesfigures
\begin{comment}
#+ORGTBL: SEND salesfigures orgtbl-to-latex
| | |
\end{comment}
The #+ORGTBL: SEND line tells Orgtblmode to use the function orgtbl-to-latex toconvert
the table into LAT
E
Xand to put it into the receiver location with name salesfigures. You
may now fill in the table—feel free to use the spreadsheet features
3
:
% BEGIN RECEIVE ORGTBL salesfigures
% END RECEIVE ORGTBL salesfigures
\begin{comment}
#+ORGTBL: SEND salesfigures orgtbl-to-latex
| Month | Days | Nr sold | per day |
|-------+------+---------+---------|
| Jan
|
23 |
55 |
2.4 |
| Feb
|
21 |
16 |
0.8 |
| March |
22 |
278 |
12.6 |
#+TBLFM: $4=$3/$2;%.1f
% $ (optional extra dollar to keep font-lock happy, see footnote)
\end{comment}
When you are done, press C-c C-c in the table to get the converted table inserted between
the two marker lines.
Now let’s assume you want to make the table header by hand, because you want to
control how columns are aligned, etc. In this case we make sure that the table translator
skips the first 2 lines of the source table, and tell the command to work as a splice, i.e., to
not produce header and footer commands of the target table:
2
Bydefault this works onlyfor LAT
E
X, HTML, and Texinfo. Configure the variable orgtbl-radio-table-
templates to install templates for other modes.
3
If the ‘#+TBLFM’ line contains an odd number of dollar characters, this may cause problems with font-lock
in LAT
E
Xmode. As shown in the example you can fix this by adding an extra line inside the comment
environment that is used to balance the dollar expressions. If you are using AUCT
E
Xwith the font-latex
library, a much better solution is to add the comment environment to the variable LaTeX-verbatim-
environments.
C# PDF Text Extract Library: extract text content from PDF file in
class. Able to extract and get all and partial text content from PDF file. Ability to extract highlighted text out of PDF document.
how to make pdf editable form reader; java read pdf form fields
VB.NET PDF Text Extract Library: extract text content from PDF
NET Programming. Extract and get partial and all text content from PDF file. Extract highlighted text out of PDF document. Image text
flatten pdf form in reader; c# read pdf form fields
Appendix A: Hacking
242
\begin{tabular}{lrrr}
Month & \multicolumn{1}{c}{Days} & Nr.\ sold & per day\\
% BEGIN RECEIVE ORGTBL salesfigures
% END RECEIVE ORGTBL salesfigures
\end{tabular}
%
\begin{comment}
#+ORGTBL: SEND salesfigures orgtbl-to-latex :splice t :skip 2
| Month | Days | Nr sold | per day |
|-------+------+---------+---------|
| Jan
|
23 |
55 |
2.4 |
| Feb
|
21 |
16 |
0.8 |
| March |
22 |
278 |
12.6 |
#+TBLFM: $4=$3/$2;%.1f
\end{comment}
The LAT
E
Xtranslator function orgtbl-to-latex is already part of Orgtbl mode. By
default, it uses a tabular environment to typeset the table and marks horizontal lines with
\hline. You can control the output through several parameters (see also seeSectionA.6.3
[Translator functions], page 242),includingthefollowingones:
:splice nil/t
When non-nil, return only table body lines, don’t wrap them into a tabular
environment. Default is nil.
:fmt fmt
Aformat to be used to wrap each field, it should contain %s for the original
field value. For example, to wrap each field value in dollars, you could use :fmt
"$%s$". This may also be a property list with column numbers and formats,
for example :fmt (2 "$%s$" 4 "%s\\%%"). A function of one argument can be
used in place of the strings; the function must return a formatted string.
:efmt efmt
Use this format to print numbers with exponentials. The format should have %s
twice for inserting mantissa and exponent, for example "%s\\times10^{%s}".
This may also be a property list with column numbers and formats, for example
:efmt (2 "$%s\\times10^{%s}$" 4 "$%s\\cdot10^{%s}$"). After efmt has
been applied to a value, fmt will also be applied. Similar to fmt, functions
of two arguments can be supplied instead of strings. By default, no special
formatting is applied.
A.6.3 Translator functions
Orgtbl mode has several translator functions built-in: orgtbl-to-csv (comma-separated
values), orgtbl-to-tsv (TAB-separated values) orgtbl-to-latex, orgtbl-to-html,
orgtbl-to-texinfo, orgtbl-to-unicode and orgtbl-to-orgtbl. These all use a generic
translator, orgtbl-to-generic, which, in turn, can delegate translations to various export
back-ends (seeSection12.2[Exportback-ends],page141).
In particular, properties passed into the function (i.e., the ones set by the ‘ORGTBL SEND’
line) take precedence over translations defined in the function. So if you would like to use
C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
Extract Field Data. Data: Auto Fill-in Field Data. Field: Insert VB.NET convert PDF to text, VB.NET extract PDF pages, VB Support to zoom in and zoom out PDF page
how to type into a pdf form in reader; how to extract data from pdf to excel
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
Extract Field Data. Data: Auto Fill-in Field Data. Field: Insert file & pages edit, C#.NET PDF pages extract, copy, paste Support to zoom in and zoom out PDF page
vb extract data from pdf; extract data from pdf using java
Appendix A: Hacking
243
the LAT
E
Xtranslator, but wanted the line endings to be ‘\\[2mm]’ instead of the default
‘\\’, you could just overrule the default with
#+ORGTBL: SEND test orgtbl-to-latex :lend " \\\\[2mm]"
For a new language, you can use the generic function to write your own converter func-
tion. For example, if you have a language where a table is started with ‘!BTBL!’, ended
with ‘!ETBL!’, and where table lines are started with ‘!BL!’, ended with ‘!EL!’, and where
the field separator is a TAB, you could define your generic translator like this:
(defun orgtbl-to-language (table params)
"Convert the orgtbl-mode TABLE to language."
(orgtbl-to-generic
table
(org-combine-plists
'(:tstart "!BTBL!" :tend "!ETBL!" :lstart "!BL!" :lend "!EL!" :sep "\t")
params)))
Please check the documentation string of the function orgtbl-to-generic for a full list of
parameters understood by that function, and remember that you can pass each of them into
orgtbl-to-latex, orgtbl-to-texinfo, and any other function using the generic function.
Of course you can also write a completely new function doing complicated things the
generic translator cannot do. A translator function takes twoarguments. The first argument
is the table, a list of lines, each line either the symbol hline or a list of fields. The second
argument is the property list containing all parameters specified in the ‘#+ORGTBL: SEND’
line. The function must return a single string containing the formatted table. If you write
agenerally useful translator, please post it onemacs-orgmode@gnu.org so that others can
benefit from your work.
A.6.4 Radio lists
Sending and receiving radio lists works exactly the same way as sending and receiving radio
tables (seeSectionA.6.1[Radiotables],page240). As for radio tables, you can insert radio
list templates in HTML, LAT
E
Xand Texinfo modes by calling org-list-insert-radio-
list.
Here are the differences with radio tables:
Orgstruct mode must be active.
Use the ORGLST keyword instead of ORGTBL.
The available translation functions for radio lists don’t take parameters.
C-c C-c will work when pressed on the first item of the list.
Here is a L
A
T
E
Xexample. Let’s say that you have this in your L
A
T
E
Xfile:
% BEGIN RECEIVE ORGLST to-buy
% END RECEIVE ORGLST to-buy
\begin{comment}
#+ORGLST: SEND to-buy org-list-to-latex
- a new house
- a new computer
+ a new keyboard
+ a new mouse
C# PDF Form Data fill-in Library: auto fill-in PDF form data in C#
Able to fill out all PDF form field in C# RasterEdge XDoc.PDF SDK package provides PDF field processing features for will learn how to fill-in field data to PDF
export excel to pdf form; filling out pdf forms with reader
C# WPF PDF Viewer SDK to view PDF document in C#.NET
Extract Field Data. Data: Auto Fill-in Field Data. Field: Insert & pages edit, C#.NET PDF pages extract, copy, paste, C# Abilities to zoom in and zoom out PDF page
how to fill in a pdf form in reader; edit pdf form in reader
Appendix A: Hacking
244
- a new life
\end{comment}
Pressing C-c C-c on a new house and will insert the converted LAT
E
Xlist between the
two marker lines.
A.7 Dynamic blocks
Org documents can contain dynamic blocks. These are specially marked regions that are
updated by some user-written function. A good example for such a block is the clock table
inserted by the command C-c C-x C-r (seeSection8.4[Clockingworktime],page80).
Dynamic blocks are enclosed by a BEGIN-END structure that assigns a name to the
block and can also specify parameters for the function producing the content of the block.
#+BEGIN: myblock :parameter1 value1 :parameter2 value2 ...
#+END:
Dynamic blocks are updated with the following commands
C-c C-x C-u
org-dblock-update
Update dynamic block at point.
C-u C-c C-x C-u
Update all dynamic blocks in the current file.
Updating a dynamic block means to remove allthe text between BEGIN and END,parse
the BEGIN line for parameters and then call the specific writer function for this block to
insert the new content. If you want to use the original content in the writer function, you
can use the extra parameter :content.
For a block with name myblock, the writer function is org-dblock-write:myblock with
as only parameter a property list with the parameters given in the begin line. Here is a
trivial example of a block that keeps track of when the block update function was last run:
#+BEGIN: block-update-time :format "on %m/%d/%Y at %H:%M"
#+END:
The corresponding block writer function could look like this:
(defun org-dblock-write:block-update-time (params)
(let ((fmt (or (plist-get params :format) "%d. %m. %Y")))
(insert "Last block update at: "
(format-time-string fmt))))
If you want to make sure that all dynamic blocks are always up-to-date, you could
add the function org-update-all-dblocks to a hook, for example before-save-hook.
org-update-all-dblocks is written in a way such that it does nothing in buffers that are
not in org-mode.
You can narrow the current buffer to the current dynamic block (like any other block)
with org-narrow-to-block.
VB.NET PDF - View PDF with WPF PDF Viewer for VB.NET
Extract Field Data. Data: Auto Fill-in Field Data. Field: Insert & pages edit, C#.NET PDF pages extract, copy, paste, C# Abilities to zoom in and zoom out PDF page
how to extract data from pdf file using java; exporting data from excel to pdf form
VB.NET PDF- HTML5 PDF Viewer for VB.NET Project
Extract Field Data. Data: Auto Fill-in Field Data. Field: Insert VB.NET convert PDF to text, VB.NET extract PDF pages, VB PDF page and zoom in or zoom out PDF page
extract data from pdf form; how to save pdf form data in reader
Appendix A: Hacking
245
A.8 Special agenda views
Org provides a special hook that can be used to narrow down the selection made by these
agenda views: agenda, agenda*
4
,todo, alltodo, tags, tags-todo, tags-tree. You may
specify a function that is used at each match to verify if the match should indeed be part
of the agenda view, and if not, how much should be skipped. You can specify a global
condition that will be applied to all agenda views, this condition would be stored in the
variable org-agenda-skip-function-global. More commonly, such a definition is applied
only to specific custom searches, using org-agenda-skip-function.
Let’s say you want to produce a list of projects that contain a WAITING tag anywhere
in the project tree. Let’s further assume that you have marked all tree headings that define
aproject with the TODO keyword PROJECT. In this case you would run a TODO search
for the keyword PROJECT, but skip the match unless there is a WAITING tag anywhere
in the subtree belonging to the project line.
To achieve this, you must write a function that searches the subtree for the tag. If
the tag is found, the function must return nil to indicate that this match should not be
skipped. If there is no such tag, return the location of the end of the subtree, to indicate
that search should continue from there.
(defun my-skip-unless-waiting ()
"Skip trees that are not waiting"
(let ((subtree-end (save-excursion (org-end-of-subtree t))))
(if (re-search-forward ":waiting:" subtree-end t)
nil
; tag found, do not skip
subtree-end))) ; tag not found, continue after end of subtree
Now you may use this function in an agenda custom command, for example like this:
(org-add-agenda-custom-command
'("b" todo "PROJECT"
((org-agenda-skip-function 'my-skip-unless-waiting)
(org-agenda-overriding-header "Projects waiting for something: "))))
Note that this also binds org-agenda-overriding-header to get a meaningful header
in the agenda view.
Ageneral way to create custom searches is to base them on a search for entries with a
certain level limit. If you want to study all entries with your custom search function, simply
do a search for ‘LEVEL>0’
5
,and then use org-agenda-skip-function to select the entries
you really want to have.
You may also put a Lisp form into org-agenda-skip-function. In particular, you may
use the functions org-agenda-skip-entry-if and org-agenda-skip-subtree-if in this
form, for example:
(org-agenda-skip-entry-if 'scheduled)
Skip current entry if it has been scheduled.
4
The agenda* view is the same as agenda except that it only considers appointments, i.e., scheduled and
deadline items that have a time specification [h]h:mm in their time-stamps.
5
Note that, when using org-odd-levels-only, a level number corresponds to order in the hierarchy, not
to the number of stars.
VB.NET PDF - WPF PDF Viewer for VB.NET Program
Field Data. Data: Auto Fill-in Field Data. Field: Insert & pages edit, C#.NET PDF pages extract, copy, paste rotate PDF pages, zoom in or zoom out PDF pages and go
using pdf forms to collect data; how to save fillable pdf form in reader
VB.NET PDF File & Page Process Library SDK for vb.net, ASP.NET
Moreover, when you get a PDF document which is out of order, you need to adding a page into PDF document, deleting unnecessary page from PDF file and changing
extracting data from pdf to excel; extract table data from pdf
Appendix A: Hacking
246
(org-agenda-skip-entry-if 'notscheduled)
Skip current entry if it has not been scheduled.
(org-agenda-skip-entry-if 'deadline)
Skip current entry if it has a deadline.
(org-agenda-skip-entry-if 'scheduled 'deadline)
Skip current entry if it has a deadline, or if it is scheduled.
(org-agenda-skip-entry-if 'todo '("TODO" "WAITING"))
Skip current entry if the TODO keyword is TODO or WAITING.
(org-agenda-skip-entry-if 'todo 'done)
Skip current entry if the TODO keyword marks a DONE state.
(org-agenda-skip-entry-if 'timestamp)
Skip current entry if it has any timestamp, may also be deadline or scheduled.
(org-agenda-skip-entry-if 'regexp "regular expression")
Skip current entry if the regular expression matches in the entry.
(org-agenda-skip-entry-if 'notregexp "regular expression")
Skip current entry unless the regular expression matches.
(org-agenda-skip-subtree-if 'regexp "regular expression")
Same as above, but check and skip the entire subtree.
Therefore we could also have written the search for WAITING projects like this, even
without defining a special function:
(org-add-agenda-custom-command
'("b" todo "PROJECT"
((org-agenda-skip-function '(org-agenda-skip-subtree-if
'regexp ":waiting:"))
(org-agenda-overriding-header "Projects waiting for something: "))))
A.9 Speeding up your agendas
When your Org files grow in both number and size, agenda commands may start to become
slow. Below are some tips on how to speed up the agenda commands.
1. Reduce the number of Org agenda files: this will reduce the slowdown caused by
accessing a hard drive.
2. Reduce the number of DONE and archived headlines: this way the agenda does not
need to skip them.
3. Inhibit the dimming of blocked tasks:
(setq org-agenda-dim-blocked-tasks nil)
4. Inhibit agenda files startup options:
(setq org-agenda-inhibit-startup nil)
5. Disable tag inheritance in agenda:
(setq org-agenda-use-tag-inheritance nil)
You can set these options for specific agenda views only. See the docstrings of these
variables for details on why they affect the agenda generation, and this dedicatedWorg
pageforfurtherexplanations.
Appendix A: Hacking
247
A.10 Extracting agenda information
Org provides commands to access agenda information for the command line in Emacs batch
mode. This extracted information can be sent directly to a printer, or it can be read by
aprogram that does further processing of the data. The first of these commands is the
function org-batch-agenda, that produces an agenda view and sends it as ASCII text to
STDOUT. The command takes a single string as parameter. If the string has length 1,
it is used as a key to one of the commands you have configured in org-agenda-custom-
commands, basically any key you can use after C-c a. For example, to directly print the
current TODO list, you could use
emacs -batch -l ~/.emacs -eval '(org-batch-agenda "t")' | lpr
If the parameter is a string with 2 or more characters, it is used as a tags/TODO match
string. For example, to print your local shopping list (all items with the tag ‘shop’, but
excluding the tag ‘NewYork’), you could use
emacs -batch -l ~/.emacs
\
-eval '(org-batch-agenda "+shop-NewYork")' | lpr
You may also modify parameters on the fly like this:
emacs -batch -l ~/.emacs
\
-eval '(org-batch-agenda "a"
\
org-agenda-span (quote month)
\
org-agenda-include-diary nil
\
org-agenda-files (quote ("~/org/project.org")))' \
| lpr
which will produce a 30-day agenda, fully restricted to the Org file ~/org/projects.org,
not even including the diary.
If you want to process the agenda data in more sophisticated ways, you can use the
command org-batch-agenda-csv to get a comma-separated list of values for each agenda
item. Each line in the output will contain a number of fields separated by commas. The
fields in a line are:
category
The category of the item
head
The headline, without TODO keyword, TAGS and PRIORITY
type
The type of the agenda entry, can be
todo
selected in TODO match
tagsmatch
selected in tags match
diary
imported from diary
deadline
adeadline
scheduled
scheduled
timestamp
appointment, selected by timestamp
closed
entry was closed on date
upcoming-deadline warning about nearing deadline
past-scheduled
forwarded scheduled item
block
entry has date block including date
todo
The TODO keyword, if any
tags
All tags including inherited ones, separated by colons
date
The relevant date, like 2007-2-14
time
The time, like 15:00-16:50
Appendix A: Hacking
248
extra
String with extra planning info
priority-l
The priority letter if any was given
priority-n
The computed numerical priority
Time and date will only be given if a timestamp (or deadline/scheduled) led to the selection
of the item.
ACSV list like this is very easy to use in a post-processing script. For example, here is a
Perl program that gets the TODO list from Emacs/Org and prints all the items, preceded
by a checkbox:
#!/usr/bin/perl
# define the Emacs command to run
$cmd = "emacs -batch -l ~/.emacs -eval '(org-batch-agenda-csv \"t\")'";
# run it and capture the output
$agenda = qx{$cmd 2>/dev/null};
# loop over all lines
foreach $line (split(/\n/,$agenda)) {
# get the individual values
($category,$head,$type,$todo,$tags,$date,$time,$extra,
$priority_l,$priority_n) = split(/,/,$line);
# process and print
print "[ ] $head\n";
}
A.11 Using the property API
Here is a description of the functions that can be used to work with properties.
[Function]
org-entry-properties &optional
pom which
Get all properties of the entry at point-or-marker POM.
This includes the TODO keyword, the tags, time strings for deadline, scheduled, and
clocking, and any additional properties defined in the entry. The return value is an
alist. Keys may occur multiple times if the property key was used several times.
POM may also be nil, in which case the current entry is used. If WHICH is nil or
all, get all properties. If WHICH is special or standard, only get that subclass.
[Function]
org-entry-get
pom property
&optional
inherit
Get value of PROPERTY for entry at point-or-marker POM. By default, this only looks
at properties defined locally in the entry. If INHERIT is non-nil and the entry does
not have the property, then also check higher levels of the hierarchy. If INHERIT is the
symbol selective, use inheritance if and only if the setting of org-use-property-
inheritance selects PROPERTY for inheritance.
[Function]
org-entry-delete
pom property
Delete the property PROPERTY from entry at point-or-marker POM.
[Function]
org-entry-put
pom property value
Set PROPERTY to VALUE for entry at point-or-marker POM.
Appendix A: Hacking
249
[Function]
org-buffer-property-keys &optional
include-specials
Get all property keys in the current buffer.
[Function]
org-insert-property-drawer
Insert a property drawer for the current entry.
[Function]
org-entry-put-multivalued-property
pom property
&rest
values
Set PROPERTY at point-or-marker POM to VALUES. VALUES should be a list of strings.
They will be concatenated, with spaces as separators.
[Function]
org-entry-get-multivalued-property
pom property
Treat the value of the property PROPERTY as a whitespace-separated list of values and
return the values as a list of strings.
[Function]
org-entry-add-to-multivalued-property
pom property value
Treat the value of the property PROPERTY as a whitespace-separated list of values and
make sure that VALUE is in this list.
[Function]
org-entry-remove-from-multivalued-property
pom property value
Treat the value of the property PROPERTY as a whitespace-separated list of values and
make sure that VALUE is not in this list.
[Function]
org-entry-member-in-multivalued-property
pom property value
Treat the value of the property PROPERTY as a whitespace-separated list of values and
check if VALUE is in this list.
[User Option]
org-property-allowed-value-functions
Hook for functions supplying allowed values for a specific property. The functions
must take a single argument, the name of the property, and return a flat list of
allowed values. If ‘:ETC’ is one of the values, use the values as completion help, but
allow also other values to be entered. The functions must return nil if they are not
responsible for this property.
A.12 Using the mapping API
Org has sophisticated mapping capabilities to find all entries satisfying certain criteria.
Internally, this functionality is used to produce agenda views, but there is also an API that
can be used to execute arbitrary functions for each or selected entries. The main entry
point for this API is:
[Function]
org-map-entries
func
&optional
match scope
&rest
skip
Call FUNC at each headline selected by MATCH in SCOPE.
FUNC is a function or a Lisp form. The function will be called without arguments,
with the cursor positioned at the beginning of the headline. The return values of all
calls to the function will be collected and returned as a list.
The call to FUNC will be wrapped into a save-excursion form, so FUNC does not need
to preserve point. After evaluation, the cursor will be moved to the end of the line
(presumably of the headline of the processed entry) and search continues from there.
Under some circumstances, this may not produce the wanted results. For example, if
you have removed (e.g., archived) the current (sub)tree it could mean that the next
Documents you may be interested
Documents you may be interested