pdf viewer c# open source : Copy pdf bookmarks control application system azure html .net console calibre15-part873

calibre User Manual, Release 2.56.0
formats_sizes()
class calibre.utils.formatter_functions.BuiltinFormatsSizes
formats_sizes() – return a comma-separated list of colon-separated items representing sizes in bytes of the
formats of a book. You can use the select function to get the size for a specific format. Note that format names
are always uppercase,as inEPUB.
has_cover()
class calibre.utils.formatter_functions.BuiltinHasCover
has_cover() – return Yes if the book has a cover, otherwise return the empty string
language_codes(lang_strings)
class calibre.utils.formatter_functions.BuiltinLanguageCodes
language_codes(lang_strings) – return the language codes for the strings passed in lang_strings. The strings
must be in the language of the current locale. Lang_strings is a comma-separated list.
language_strings(lang_codes, localize)
class calibre.utils.formatter_functions.BuiltinLanguageStrings
language_strings(lang_codes, localize) – return the strings for the language codes passed in lang_codes. If
localize is zero, return the strings in English. If localize is not zero, return the strings in the language of the
current locale. Lang_codes is a comma-separated list.
ondevice()
class calibre.utils.formatter_functions.BuiltinOndevice
ondevice() – return Yes if ondevice is set, otherwise return the empty string. This function works only in the
GUI. If you want to use this value in save-to-disk or send-to-device templates then you must make a custom
“Column built fromother columns”, use the function in that column’s template, and use that column’s value in
your save/send templates
raw_field(name)
class calibre.utils.formatter_functions.BuiltinRawField
raw_field(name) – returns the metadata field named by name without applying any formatting.
raw_list(name, separator)
class calibre.utils.formatter_functions.BuiltinRawList
raw_list(name, separator) – returns the metadata listnamed byname without applying any formatting orsorting
and with items separated by separator.
series_sort()
class calibre.utils.formatter_functions.BuiltinSeriesSort
series_sort() – return the series sort value
user_categories()
class calibre.utils.formatter_functions.BuiltinUserCategories
user_categories() – return a comma-separated list of the user categories that contain this book. This function
works only in the GUI. If you want to use these values in save-to-disk or send-to-device templates then you
must make a custom “Column built from other columns”, use the function in that column’s template, and use
that column’s value in your save/send templates
1.9. Tutorials
147
Copy pdf bookmarks - add, remove, update PDF bookmarks in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your C# Project with Rapid PDF Internal Navigation Via Bookmark and Outline
creating bookmarks in pdf files; create bookmark in pdf automatically
Copy pdf bookmarks - VB.NET PDF bookmark library: add, remove, update PDF bookmarks in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your VB.NET Project with Rapid PDF Internal Navigation Via Bookmark and Outline
creating bookmarks pdf; how to add bookmarks to pdf document
calibre User Manual, Release 2.56.0
virtual_libraries()
class calibre.utils.formatter_functions.BuiltinVirtualLibraries
virtual_libraries() –returna comma-separated list of virtuallibraries that contain this book. This function works
only inthe GUI. If you wantto usethese values in save-to-diskor send-to-device templates thenyoumustmake
acustom “Column built fromother columns”,use the function in that column’s template, and use that column’s
value in yoursave/send templates
If-then-else
contains(val,pattern, textif match, text if not match)
class calibre.utils.formatter_functions.BuiltinContains
contains(val,pattern, text if match, text if not match)– checks if val contains matches forthe regularexpression
pattern. Returns text if match if matches are found, otherwise it returns text if no match
ifempty(val,text if empty)
class calibre.utils.formatter_functions.BuiltinIfempty
ifempty(val,text if empty) – return val if val is not empty,otherwise return text if empty
test(val, text if not empty, text if empty)
class calibre.utils.formatter_functions.BuiltinTest
test(val, text if not empty, text if empty) – return text if not empty if val is not empty, otherwise return text if
empty
Iteratingover values
first_non_empty(value,value, ...)
class calibre.utils.formatter_functions.BuiltinFirstNonEmpty
first_non_empty(value, value, ...) – returns the first value that is not empty. If all values are empty, then the
empty value is returned. You can have as many values as you want.
lookup(val, pattern, field, pattern, field, ..., else_field)
class calibre.utils.formatter_functions.BuiltinLookup
lookup(val, pattern, field, pattern, field, ..., else_field) – like switch, except the arguments are field (metadata)
names, not text. The value of the appropriate field will be fetched and used. Note that because composite
columns are fields, you can use this function in one composite field to use the value of some other composite
field. This is extremely useful when constructing variable save paths
switch(val, pattern, value,pattern, value, ...,else_value)
class calibre.utils.formatter_functions.BuiltinSwitch
switch(val, pattern,value,pattern, value, ...,else_value)– for eachpattern,value pair, checks if val matches the
regular expression pattern and if so, returns that value. If no pattern matches, then else_value is returned. You
can have as many pattern, value pairs as you want
Listlookup
148
Chapter 1. Sections
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
document file. Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. Also a preview
how to add bookmark in pdf; bookmarks in pdf files
VB.NET PDF File Split Library: Split, seperate PDF into multiple
Demo Code in VB.NET. The following VB.NET codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
adding bookmarks to a pdf; bookmarks pdf files
calibre User Manual, Release 2.56.0
identifier_in_list(val, id, found_val, not_found_val)
class calibre.utils.formatter_functions.BuiltinIdentifierInList
identifier_in_list(val, id, found_val, not_found_val) – treat val as a list of identifiers separated by commas,
comparing the string against each value in the list. An identifier has the format “identifier:value”. The id
parameter should be either “id” or “id:regexp”. The first case matches ifthere is any identifier with that id. The
second case matches if the regexp matches the identifier’s value. Ifthere is a match, returnfound_val,otherwise
return not_found_val.
in_list(val, separator, pattern, found_val, not_found_val)
class calibre.utils.formatter_functions.BuiltinInList
in_list(val, separator, pattern, found_val, not_found_val) – treat val as a list of items separated by separator,
comparing the pattern against each value in the list. If the pattern matches a value, return found_val, otherwise
return not_found_val.
list_item(val, index,separator)
class calibre.utils.formatter_functions.BuiltinListitem
list_item(val, index, separator) – interpret the value as a list of items separated by separator, returning the
index‘th item. The first item is number zero. The last item can be returned using ‘list_item(-1,separator). If
the item is not in the list, then the empty value is returned. The separator has the same meaning as in the count
function.
select(val, key)
class calibre.utils.formatter_functions.BuiltinSelect
select(val, key) – interpret the value as a comma-separated list of items, with the items being “id:value”. Find
the pair with the id equal to key,and return the corresponding value.
str_in_list(val, separator, string, found_val, not_found_val)
class calibre.utils.formatter_functions.BuiltinStrInList
str_in_list(val, separator, string, found_val, not_found_val) – treat val as a list of items separated by separator,
comparing the string against each value in the list. If the string matches a value, return found_val, otherwise
return not_found_val. If the string contains separators,then it is also treatedas a list and each value is checked.
Listmanipulation
count(val, separator)
class calibre.utils.formatter_functions.BuiltinCount
count(val,separator)–interprets thevalueas a listofitemsseparatedbyseparator,returning thenumberofitems
in the list. Most lists use a comma as the separator, but authors uses an ampersand. Examples: {tags:count(,)},
{authors:count(&)}
list_difference(list1, list2, separator)
class calibre.utils.formatter_functions.BuiltinListDifference
list_difference(list1, list2, separator) – return a list made by removing from list1 any item found in list2, using
acase-insensitive comparison. The items in list1 and list2 are separated by separator, as are the items in the
returned list.
1.9. Tutorials
149
C# PDF File Compress Library: Compress reduce PDF size in C#.net
NET framework. Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. C# class demo
how to create bookmarks in pdf file; add bookmark pdf file
C# PDF File Split Library: Split, seperate PDF into multiple files
Split PDF file by top level bookmarks. The following C# codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
add bookmarks to pdf reader; bookmarks pdf documents
calibre User Manual, Release 2.56.0
list_equals(list1,sep1,list2,sep2,yes_val, no_val)
class calibre.utils.formatter_functions.BuiltinListEquals
list_equals(list1, sep1, list2, sep2, yes_val, no_val) – return yes_val if list1 and list2 contain the same items,
otherwise returnno_val. The items are determined by splittingeachlistusing the appropriate separatorcharacter
(sep1 or sep2). The order of items in the lists is not relevant. The comparison is case insensitive.
list_intersection(list1, list2, separator)
class calibre.utils.formatter_functions.BuiltinListIntersection
list_intersection(list1, list2, separator) – return a list made by removing from list1 any item not found in list2,
using a case-insensitive comparison. The items in list1 and list2 are separated by separator, as are the items in
the returned list.
list_re(src_list, separator, include_re, opt_replace)
class calibre.utils.formatter_functions.BuiltinListRe
list_re(src_list, separator, include_re, opt_replace) – Construct a list by first separating src_list into items using
the separator character. For each item in the list,check if it matches include_re. If it does, then add it to the list
to be returned. If opt_replace is not the empty string, then apply the replacement before adding the item to the
returned list.
list_re_group(src_list, separator, include_re, search_re, group_1_template,...)
class calibre.utils.formatter_functions.BuiltinListReGroup
list_re_group(src_list, separator, include_re, search_re, group_1_template, ...) – Like list_re except replace-
ments are not optional. It uses re_group(list_item, search_re, group_1_template, ...) when doing the replace-
ments on the resulting list.
list_sort(list, direction, separator)
class calibre.utils.formatter_functions.BuiltinListSort
list_sort(list, direction, separator) – return list sorted using a case-insensitive sort. If direction is zero, the list
is sorted ascending, otherwise descending. The list items are separated by separator, as are the items in the
returned list.
list_union(list1, list2, separator)
class calibre.utils.formatter_functions.BuiltinListUnion
list_union(list1,list2, separator) – return a list made by merging the items in list1 and list2, removing duplicate
items using a case-insensitive comparison. If items differ in case, the one in list1 is used. The items in list1 and
list2 are separated by separator, as are the items in the returned list.
subitems(val, start_index, end_index)
class calibre.utils.formatter_functions.BuiltinSubitems
subitems(val, start_index, end_index) – This function is used to break apart lists of items such as genres. It
interprets the value as a comma-separated list of items, where each item is a period-separated list. Returns a
new list made by first findingalltheperiod-separated items,then foreachsuch itemextractingthe start_index to
the end_index components, then combining the results back together. The first component ina period-separated
list has an index of zero. If an index is negative, then it counts from the end of the list. As a special case,
an end_index of zero is assumed to be the length of the list. Example using basic template mode and as-
suming a #genre value of “A.B.C”: {#genre:subitems(0,1)} returns “A”. {#genre:subitems(0,2)} returns “A.B”.
{#genre:subitems(1,0)} returns “B.C”. Assuming a #genre value of “A.B.C, D.E.F”, {#genre:subitems(0,1)}
returns “A,D”. {#genre:subitems(0,2)}returns “A.B, D.E”
150
Chapter 1. Sections
How to C#: Basic SDK Concept of XDoc.PDF for .NET
create, load, combine, and split PDF file(s), and add, create, insert, delete, re-order, copy, paste, cut This class describes bookmarks in a PDF document.
add bookmarks to pdf online; auto bookmark pdf
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
by C#.NET PDF to HTML converter toolkit SDK, preserves all the original anchors, links, bookmarks and font style that are included in target PDF document file.
bookmarks in pdf reader; bookmarks pdf file
calibre User Manual, Release 2.56.0
sublist(val, start_index, end_index, separator)
class calibre.utils.formatter_functions.BuiltinSublist
sublist(val, start_index, end_index, separator) – interpret the value as a list of items separated by separator,
returning a new list made from the start_index to the end_index item. The first item is number zero. If an
index is negative, then it counts from the end of the list. As a special case, an end_index of zero is as-
sumed to be the length of the list. Examples using basic template mode and assuming that the tags column
(which is comma-separated) contains “A, B, C”: {tags:sublist(0,1„)} returns “A”. {tags:sublist(-1,0„)} returns
“C”. {tags:sublist(0,-1„)} returns “A,B”.
Other
assign(id, val)
class calibre.utils.formatter_functions.BuiltinAssign
assign(id, val)– assigns val to id, then returns val. id must be an identifier,not anexpression
print(a,b, ...)
class calibre.utils.formatter_functions.BuiltinPrint
print(a, b, ...) – prints the arguments to standard output. Unless you start calibre from the command line
(calibre-debug -g), the output will go to a black hole.
Recursion
eval(template)
class calibre.utils.formatter_functions.BuiltinEval
eval(template) – evaluates the template, passing the local variables (those ‘assign’ed to) instead of the book
metadata. This permits using the template processor to construct complex results from local variables. Because
the{and}characters are special,youmust use [[ forthe {character and ]]forthe} character; theyareconverted
automatically. Note also that prefixes and suffixes (the |prefix|suffix syntax) cannot be used in the argument to
this function when using template program mode.
template(x)
class calibre.utils.formatter_functions.BuiltinTemplate
template(x) – evaluates x as a template. The evaluation is done in its own context, meaning that variables
are not shared between the caller and the template evaluation. Because the { and } characters are special,
you must use [[ for the { character and ]] for the } character; they are converted automatically. For example,
template(‘[[title_sort]]’) will evaluate the template {title_sort} and return its value. Note also that prefixes and
suffixes (the |prefix|suffix syntax) cannot be used in the argument to this function when using template program
mode.
Relational
cmp(x, y, lt,eq,gt)
class calibre.utils.formatter_functions.BuiltinCmp
cmp(x, y,lt,eq, gt) – compares x and y afterconverting both to numbers. Returns lt if x < y. Returns eq if x ==
y. Otherwise returns gt.
1.9. Tutorials
151
VB.NET PDF: Basic SDK Concept of XDoc.PDF
create, load, combine, and split PDF file(s), and add, create, insert, delete, re-order, copy, paste, cut This class describes bookmarks in a PDF document.
pdf bookmark editor; add bookmark to pdf reader
VB.NET PDF Page Replace Library: replace PDF pages in C#.net, ASP.
edit, C#.NET PDF pages extract, copy, paste, C# page with another PDF page from another PDF file text, images, interactive elements, such as links and bookmarks.
creating bookmarks in pdf documents; create bookmarks in pdf from excel
calibre User Manual, Release 2.56.0
first_matching_cmp(val, cmp1,result1, cmp2,r2, ..., else_result)
class calibre.utils.formatter_functions.BuiltinFirstMatchingCmp
first_matching_cmp(val, cmp1, result1, cmp2, r2, ..., else_result) – compares “val < cmpN” in sequence, re-
turning resultN for the first comparison that succeeds. Returns else_result if nocomparison succeeds. Example:
first_matching_cmp(10,5,”small”,10,”middle”,15,”large”,”giant”)returns “large”. The same examplewith afirst
value of16 returns “giant”.
strcmp(x,y, lt, eq, gt)
class calibre.utils.formatter_functions.BuiltinStrcmp
strcmp(x, y, lt, eq, gt) – does a case-insensitive comparison of x and y as strings. Returns lt ifx < y. Returns eq
if x == y. Otherwise returns gt.
String case changes
capitalize(val)
class calibre.utils.formatter_functions.BuiltinCapitalize
capitalize(val) – return val capitalized
lowercase(val)
class calibre.utils.formatter_functions.BuiltinLowercase
lowercase(val) – return val in lower case
titlecase(val)
class calibre.utils.formatter_functions.BuiltinTitlecase
titlecase(val) – return val in title case
uppercase(val)
class calibre.utils.formatter_functions.BuiltinUppercase
uppercase(val)– return val in upper case
String manipulation
re(val,pattern, replacement)
class calibre.utils.formatter_functions.BuiltinRe
re(val, pattern, replacement) – return val after applying the regular expression. All instances of pattern are
replaced with replacement. As in all of calibre, these are python-compatible regular expressions
re_group(val, pattern,template_for_group_1,for_group_2,...)
class calibre.utils.formatter_functions.BuiltinReGroup
re_group(val, pattern, template_for_group_1, for_group_2, ...) – return a string made by applying the regular
expression pattern to the val and replacing each matched instance with the string computed by replacing each
matchedgroup bythevalue returned bythecorrespondingtemplate. The originalmatchedvalue forthe groupis
available as $. In template program mode, like forthe template and the eval functions, you use [[for {and ]] for
}. The following example in template program mode looks for series with more than one word and uppercases
the first word: {series:’re_group($,“(S* )(.*)”, “[[$:uppercase()]]”,“[[$]]”)’}
152
Chapter 1. Sections
calibre User Manual, Release 2.56.0
shorten(val, leftchars, middle text, right chars)
class calibre.utils.formatter_functions.BuiltinShorten
shorten(val, left chars, middle text, right chars) – Return a shortened version of val, consisting of left chars
characters from the beginning of val, followed by middle text, followed by right chars characters from the end
of the string. Left chars and right chars must be integers. For example, assume the title of the book is Ancient
English Laws in the Times of Ivanhoe, and you want it to fit in a space of at most 15 characters. If you use
{title:shorten(9,-,5)}, the result will be Ancient E-nhoe. If the field’s length is less than left chars + right chars
+the length of middle text, then the field will be used intact. For example, the title The Dome would not be
changed.
strcat(a, b, ...)
class calibre.utils.formatter_functions.BuiltinStrcat
strcat(a, b,...) – can take any number of arguments. Returns a string formed by concatenating all the arguments
strcat_max(max, string1, prefix2,string2, ...)
class calibre.utils.formatter_functions.BuiltinStrcatMax
strcat_max(max, string1, prefix2, string2, ...) – Returns a string formed by concatenating the arguments. The
returned value is initialized to string1. Prefix, string pairs are added to the end of the value as long as the
resulting string length is less than max. String1 is returned even if string1 is longer than max. You can pass as
many prefix,string pairs as you wish.
strlen(a)
class calibre.utils.formatter_functions.BuiltinStrlen
strlen(a) – Returns the lengthof the string passed as the argument
substr(str, start, end)
class calibre.utils.formatter_functions.BuiltinSubstr
substr(str, start, end) – returns the start’th through the end’th characters of str. The first character in str is the
zero’th character. If end is negative, then it indicates that many characters counting from the right. If end is
zero, then it indicates the last character. For example, substr(‘12345’, 1, 0) returns ‘2345’, and substr(‘12345’,
1,-1)returns ‘234’.
swap_around_comma(val)
class calibre.utils.formatter_functions.BuiltinSwapAroundComma
swap_around_comma(val) – given a value of the form “B, A”, return “A B”. This is most useful for converting
names in LN,FN format to FNLN. If there is no comma,the function returns val unchanged
transliterate(a)
class calibre.utils.formatter_functions.BuiltinTransliterate
transliterate(a) – Returns a string in a latin alphabet formed by approximating the sound of the words in the
source string. For example,if the source is “Фёдор Михaйлович Достоевский” the function returns “Fiodor
Mikhailovich Dostoievskii”.
API of the Metadata objects The python implementation of the template functions is passed in a Metadata object.
Knowing it’s API is useful if you want to define yourown template functions.
class calibre.ebooks.metadata.book.base.Metadata(title,
authors=(u’Unknown’,
),
other=None,
template_cache=None,
formatter=None)
Aclass representing all the metadata for a book. The various standard metadata fields are available as attributes
1.9. Tutorials
153
calibre User Manual, Release 2.56.0
of this object. You can also stick arbitrary attributes onto this object.
Metadata from custom columns should be accessed via the get() method, passing in the lookup name for the
column, for example: “#mytags”.
Use theis_null() (page 154)method to test ifa fieldis null.
This object also has functions to format fields into strings.
The list of standardmetadata fields grows with time is inSTANDARD_METADATA_FIELDS (page 155).
Please keep the method based API of this class to a minimum. Every method becomes a reserved field name.
is_null(field)
Return True if the value of field is null in this object. ‘null’ means it is unknown or evaluates to False. So
atitle of _(‘Unknown’) is null ora language of ‘und’is null.
Be careful with numeric fields since this will return True for zero as well as None.
Also returns True ifthe field does not exist.
deepcopy(class_generator=<function <lambda>>)
Do not use this method unless you know what you are doing, if you want to create a simple clone of
this object, use deepcopy_metadata() instead. Class_generator must be a function that returns an
instance of Metadata or a subclass of it.
get_identifiers()
Return a copy of the identifiers dictionary. The dict is small, and the penalty for using a reference where
acopy is needed is large. Also, we don’t want any manipulations of the returned dict to show up in the
book.
set_identifiers(identifiers)
Set all identifiers. Note that if you previously set ISBN, calling this method will delete it.
set_identifier(typ, val)
If val is empty, deletes identifierof type typ
standard_field_keys()
returna list of all possible keys, even if this bookdoesn’t have them
custom_field_keys()
returna list of the custom fields in this book
all_field_keys()
All field keys known by this instance,even if theirvalue is None
metadata_for_field(key)
returnmetadata describing a standard orcustom field.
all_non_none_fields()
Return a dictionary containing all non-None metadata fields,including the customones.
get_standard_metadata(field, make_copy)
return field metadata from the field if it is there. Otherwise return None. field is the key name, not the
label. Return a copy if requested,just in case the user wants to change values in the dict.
get_all_standard_metadata(make_copy)
returna dict containing all the standard field metadata associated with the book.
get_all_user_metadata(make_copy)
returna dict containing all the customfield metadata associated with the book.
154
Chapter 1. Sections
calibre User Manual, Release 2.56.0
get_user_metadata(field,make_copy)
return field metadata from the object if it is there. Otherwise return None. field is the key name, not the
label. Return a copy if requested,just in case the user wants to change values in the dict.
set_all_user_metadata(metadata)
store customfield metadata intothe object. Field is the keyname not the label
set_user_metadata(field,metadata)
store customfield metadata forone column into the object. Field is the key name not the label
template_to_attribute(other,ops)
Takes a list [(src,dest), (src,dest)], evaluates the template in the context of other, then copies the result to
self[dest]. This is on a best-efforts basis. Some assignments can make no sense.
smart_update(other, replace_metadata=False)
Merge the information in other into self. In case of conflicts, the information in other takes precedence,
unless the information in other is NULL.
format_field(key, series_with_index=True)
Returns the tuple (display_name,formatted_value)
to_html()
AHTML representation ofthis object.
calibre.ebooks.metadata.book.base.STANDARD_METADATA_FIELDS
The set of standard metadata fields.
'''
All fields must have a NULL value represented as None for simple types,
an empty list/dictionary for complex types and (None, None) for cover_data
'''
SOCIAL_METADATA_FIELDS frozenset([
'tags',
# Ordered list
'rating',
# A floating point number between 0 and 10
'comments',
# A simple HTML enabled string
'series',
# A simple string
'series_index',
# A floating point number
# Of the form { scheme1:value1, scheme2:value2}
# For example: {'isbn':'123456789', 'doi':'xxxx', ... }
'identifiers',
])
'''
The list of names that convert to identifiers when in get and set.
'''
TOP_LEVEL_IDENTIFIERS frozenset([
'isbn',
])
PUBLICATION_METADATA_FIELDS frozenset([
'title',
# title must never be None. Should be _('Unknown')
# Pseudo field that can be set, but if not set is auto generated
# from title and languages
'title_sort',
'authors',
# Ordered list. Must never be None, can be [_('Unknown')]
'author_sort_map',
# Map of sort strings for each author
# Pseudo field that can be set, but if not set is auto generated
# from authors and languages
1.9. Tutorials
155
calibre User Manual, Release 2.56.0
'author_sort',
'book_producer',
'timestamp',
# Dates and times must be timezone aware
'pubdate',
'last_modified',
'rights',
# So far only known publication type is periodical:calibre
# If None, means book
'publication_type',
'uuid',
# A UUID usually of type 4
'languages',
# ordered list of languages in this publication
'publisher',
# Simple string, no special semantics
# Absolute path to image file encoded in filesystem_encoding
'cover',
# Of the form (format, data) where format is, for e.g. 'jpeg', 'png', 'gif'...
'cover_data',
# Either thumbnail data, or an object with the attribute
# image_path which is the path to an image file, encoded
# in filesystem_encoding
'thumbnail',
])
BOOK_STRUCTURE_FIELDS frozenset([
# These are used by code, Null values are None.
'toc', 'spine', 'guide', 'manifest',
])
USER_METADATA_FIELDS frozenset([
# A dict of dicts similar to field_metadata. Each field description dict
# also contains a value field with the key #value#.
'user_metadata',
])
DEVICE_METADATA_FIELDS frozenset([
'device_collections',
# Ordered list of strings
'lpath',
# Unicode, / separated
'size',
# In bytes
'mime',
# Mimetype of the book file being represented
])
CALIBRE_METADATA_FIELDS frozenset([
'application_id',
# An application id, currently set to the db_id.
'db_id',
# the calibre primary key of the item.
'formats',
# list of formats (extensions) for this book
# a dict of user category names, where the value is a list of item names
# from the book that are in that category
'user_categories',
# a dict of author to an associated hyperlink
'author_link_map',
]
)
ALL_METADATA_FIELDS =
SOCIAL_METADATA_FIELDS.union(
PUBLICATION_METADATA_FIELDS).union(
BOOK_STRUCTURE_FIELDS).union(
USER_METADATA_FIELDS).union(
156
Chapter 1. Sections
Documents you may be interested
Documents you may be interested