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.
.Net computes an angle by intersection of ellipse with a ray java does the following: x1 = d1*cos(a), y1 = d2*sin(a) where: d1 = width/2, d2 = height/2 we need to find angle x, which satisfies: x1 = m*cos(a) = d1*cos(x) y1 = m*sin(a) = d2*sin(x) (x1*x1)/(d1*d1) + (x2*x2)/(d2*d2) = 1
@param sqrd1Tod2 (d1/d2)*(d1/d2) @param angle angle in degrees @return converted angle in degrees