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.