SCALE SHEAR TRANSLATE m00/m11 m01/m10 m02/m12 IDENTITY 1.0 0.0 0.0 TRANSLATE (TR) 1.0 0.0 not both 0.0 SCALE (SC) not both 1.0 0.0 0.0 TR | SC not both 1.0 0.0 not both 0.0 SHEAR (SH) 0.0 not both 0.0 0.0 TR | SH 0.0 not both 0.0 not both 0.0 SC | SH not both 0.0 not both 0.0 0.0 TR | SC | SH not both 0.0 not both 0.0 not both 0.0
instanceof
判断类型并转换
instanceof
判断元素的类型
instanceof
判断是哪一种资源
1 2.0 5.0
10 10 50 50
1000
/Pages/P1/Content.xml
./Res/Book1.jpg
../Pages/P1/Res.xml
Pages/P1/Rcs.xml
————《GB/T 33190-2016》 表 2 基本数据类型
0 0
1000
B(t) = (1-t)^3(P0) + 3t(1-t)^2(P1) + 3t^2(1-t)(P2) + t^3(P3) t∈[0,1]
B(t) = (1 - t)^2 + 2t(1 - t)(P1) + t^2(P2)
t ∈ [0,1]
true
always output floating point numbers with 6 decimal digits.
If false
uses the faster, although less precise, representation.
int
. The size of the array will grow by one.
@param b the int to be appended
@return a reference to this ByteBuffer
object
byte
array. The buffer will grow by
len
bytes.
@param b the array to be appended
@param off the offset to the start of the array
@param len the length of bytes to Append
@return a reference to this ByteBuffer
object
ByteBuffer
object
string
to the buffer. The string
is
converted according to the encoding ISO-8859-1.
@param str the string
to be appended
@return a reference to this ByteBuffer
object
char
to the buffer. The char
is
converted according to the encoding ISO-8859-1.
@param c the char
to be appended
@return a reference to this ByteBuffer
object
ByteBuffer
to this buffer.
@param buf the ByteBuffer
to be appended
@return a reference to this ByteBuffer
object
int
.
@param i the int
to be appended
@return a reference to this ByteBuffer
object
long
.
@param i the long
to be appended
@return a reference to this ByteBuffer
object
float
according
to the Pdf conventions.
@param i the float
to be appended
@return a reference to this ByteBuffer
object
double
according
to the Pdf conventions.
@param d the double
to be appended
@return a reference to this ByteBuffer
object
double
into a format suitable for the PDF.
@param d a double
@return the string
representation of the double
double
into a format suitable for the PDF.
@param d a double
@param buf a ByteBuffer
@return the String
representation of the double
if
buf
is null
. If buf
is not null
,
then the double is appended directly to the buffer and this methods returns null
.
count
field, which is the number of valid bytes in this byte buffer.
out.Write(buf, 0, count)
.
@param out the output stream to which to write the data.
@exception IOException if an I/O error occurs.
true
if the image is JP2, false
if a codestream.
int
from an Stream
.
@param is an Stream
@return the value of an int
word
from an Stream
.
@param is an Stream
@return the value of an int
String
from an Stream
.
@param is an Stream
@return the value of an int
<ns:UnqualifiedStructProperty-1
... The fields as attributes, if all are simple and unqualified
/>
<ns:UnqualifiedStructProperty-2 rdf:parseType="Resource">
... The fields as elements, if none are simple and unqualified
</ns:UnqualifiedStructProperty-2>
<ns:UnqualifiedStructProperty-3>
<rdf:Description
... The simple and unqualified fields as attributes
>
... The compound or qualified fields as elements
</rdf:Description>
</ns:UnqualifiedStructProperty-3>
<ns:UnqualifiedArrayProperty>
<rdf:Bag> or Seq or Alt
... Array items as rdf:li elements, same forms as top level properties
</rdf:Bag>
</ns:UnqualifiedArrayProperty>
<ns:QualifiedProperty rdf:parseType="Resource">
<rdf:value> ... Property "value"
following the unqualified forms ... </rdf:value>
... Qualifiers looking like named struct fields
</ns:QualifiedProperty>
*** Consider numbered array items, but has compatibility problems.
Consider qualified form with rdf:Description and attributes.
<rdf:Description rdf:about="TreeName" xmlns:ns="URI" ... >
... The actual properties of the schema, see SerializePrettyRDFProperty
<!-- ns1:Alias is aliased to ns2:Actual --> ... If alias comments are wanted
</rdf:Description>
<ns:UnqualifiedSimpleProperty>value</ns:UnqualifiedSimpleProperty>
<ns:UnqualifiedStructProperty> (If no rdf:resource qualifier)
<rdf:Description>
... Fields, same forms as top level properties
</rdf:Description>
</ns:UnqualifiedStructProperty>
<ns:ResourceStructProperty rdf:resource="URI"
... Fields as attributes
>
<ns:UnqualifiedArrayProperty>
<rdf:Bag> or Seq or Alt
... Array items as rdf:li elements, same forms as top level properties
</rdf:Bag>
</ns:UnqualifiedArrayProperty>
<ns:QualifiedProperty>
<rdf:Description>
<rdf:value> ... Property "value" following the unqualified
forms ... </rdf:value>
... Qualifiers looking like named struct fields
</rdf:Description>
</ns:QualifiedProperty>
CLEAR_UNNAMED_PROPERTIES
Delete anything that is not in the template. ADD_NEW_PROPERTIES
Add properties; see detailed description. REPLACE_EXISTING_PROPERTIES
Replace the values of existing properties. REPLACE_WITH_DELETE_EMPTY
Replace the values of existing properties and delete properties if the new value is empty. INCLUDE_INTERNAL_PROPERTIES
Operate on internal properties as well as external properties.
string path = XmpPathFactory.ComposeStructFieldPath(schemaNS, "Struct", fieldNS, "Array");
string path += XmpPathFactory.ComposeArrayItemPath(schemaNS, "Array", index);
PropertyInteger result = xmpObj.GetPropertyAsInteger(schemaNS, path);
You could also use this code if you want the string form of the integer:
String path = XmpPathFactory.ComposeStructFieldPath (schemaNS, "Struct", fieldNS,
"Array");
PropertyText xmpObj.GetArrayItem (schemaNS, path, index);
String path = composeFieldSelector ( schemaNS, "Downloads", fieldNS, "City", chosenCity );
XMPProperty prop = xmpObj.getStructField ( schemaNS, path, fieldNS, "URI" );
appendProperties ( sourceXMP, destXMP, doAllProperties,
replaceOldValues, deleteEmptyValues ):
for all source schema (top level namespaces):
for all top level properties in sourceSchema:
if doAllProperties or prop is external:
appendSubtree ( sourceNode, destSchema, replaceOldValues, deleteEmptyValues )
appendSubtree ( sourceNode, destParent, replaceOldValues, deleteEmptyValues ):
if deleteEmptyValues and source value is empty:
delete the corresponding child from destParent
else if sourceNode not in destParent (by name):
copy sourceNode's subtree to destParent
else if replaceOld:
delete subtree from destParent
copy sourceNode's subtree to destParent
else:
// Already exists in dest and not replacing, merge structs and arrays
if sourceNode and destNode forms differ:
return, leave the destNode alone
else if form is a struct:
for each field in sourceNode:
AppendSubtree ( sourceNode.field, destNode, replaceOldValues )
else if form is an alt-text array:
copy new items by "xml:lang" value into the destination
else if form is an array:
copy new items by value into the destination, ignoring order and duplicates
xml:lang
qualifier;
other qualifiers are ignored.Structs are recursively compared by field
names, without regard to field order.Arrays are compared by recursively
comparing all items.