c# pdf viewer open source : Rearrange pages in pdf document SDK software service wpf winforms html dnn World%20of%20Warcraft%20Programming%20(2nd%20Edition)15-part1811

Chapter 6
Lua Standard Libraries 109
> print(strconcat(“alpha:“, “beta:“, “gamma“))
alpha:beta:gamma
getglobal(name)
takes a variablenameas astringandreturns the so-named
global variable, if it exists. This function is deprecated in World of Warcraft,
meaning it should no longer be used but has not yet been removed. It is
included, along with
setglobal
,in case you see it in code from older addons.
> greek1, greek2, greek3 = “alpha“, “beta“, “gamma“
> for i=1,3 do
>> print(getglobal(“greek“ .. i))
>> end
alpha
beta
gamma
The
setglobal(name, value)
function takes a variable name as a string,
along with a corresponding value, and sets the so-named global variable to
the new value.
> print(myVariable)
nil
> setglobal(“myVariable“, 17)
> print(myVariable)
17
The
debugstack([start[, count1[, count2]]])
function returns the cur-
rent calling stack according to three inputs, as described in Table 6-9.
Table 6-9: debugstack Inputs
INPUT
TYPE
DESCRIPTION
start
Number The stack depth at which to start the stack trace (defaults to 1,
the function calling debugstack)
count1
Number The number of functions to output at the top of the stack
(default 12)
count2
Number The number of functions to output at the bottom of the stack
(default 10)
This function only operates correctly in WoW. The standalone Lua inter-
preter has its own method of providing stack traces.
Function Aliases
In World of Warcraft, many of the library functions have been given shorter
aliases so they are easiertoaccess andtype.Table 6-10 contains a full listing of
these aliases.
Rearrange pages in pdf document - re-order PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Customizing Page Order of PDF Document in C# Project
how to move pages in pdf; pdf move pages
Rearrange pages in pdf document - VB.NET PDF Page Move Library: re-order PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sort PDF Document Pages Using VB.NET Demo Code
move pdf pages online; reorder pages in pdf file
110
Part I
Learning to Program
Table 6-10: Global Aliases
ALIAS
ORIGINAL FUNCTION
ALIAS
ORIGINAL FUNCTION
abs
math.abs
gsub
string.gsub
ceil
math.ceil
strbyte
string.byte
cos
math.cos
strchar
string.char
deg
math.deg
strfind
string.find
exp
math.exp
strlen
string.len
floor
math.floor
strlower
string.lower
frexp
math.frexp
strmatch
string.match
ldexp
math.ldexp
strrep
string.rep
log
math.log
strrev
string.reverse
max
math.max
strsub
string.sub
min
math.min
strupper
string.upper
mod
math.fmod
foreach
table.foreach
rad
math.rad
foreachi
table.foreachi
random
math.random
getn
table.getn
randomseed
math.randomseed
sort
table.sort
sqrt
math.sqrt
tinsert
table.insert
format
string.format
tremove
table.remove
gmatch
string.gmatch
Summary
Lua has three major libraries that contain utility functions. The table library
provides ways to insert, remove, and sort array tables; the string library
has a number of useful utilities for tasks such as turning a string into all
lowercase, uppercase, or even reversing the string. In addition to these utility
functions,thischapterintroducedthebasicsofLuapatternmatching andstring
formatting using
string.format()
,
string.match()
,and
string.find()
.
C# TIFF: How to Reorder, Rearrange & Sort TIFF Pages Using C# Code
C# TIFF - Sort TIFF File Pages Order in C#.NET. Reorder, Rearrange and Sort TIFF Document Pages in C#.NET Application. C# TIFF Page Sorting Overview.
moving pages in pdf; how to reorder pages in pdf
VB.NET PDF File & Page Process Library SDK for vb.net, ASP.NET
page directly. Moreover, when you get a PDF document which is out of order, you need to rearrange the PDF document pages. In these
pdf reorder pages; how to reorder pages in pdf reader
CH A P T E R
7
Learning XML
As mentionedin Chapter 1, you use two languages tobuilduser interfaces for
WorldofWarcraft.YouhavealreadybeenintroducedtoLua,theprogramming
language thatdefines the behavior of the interface,but you haven’t yet tackled
eXtensible Markup Language (XML), used to create the graphical frames that
comprise WoW’s user interface. That’s what this chapter is all about.
XML as a Markup Language
A markup language takes text content and adds extra information to the
document, mixing it in with the text itself. The markup typically describes
something about the text itself, such as the structure of the document or how
the text should be displayedon screen. Following are examples of two notable
markup languages, HTML and LaTeX:
HTML
<html>
<head>
<title>My Document</title>
</head>
<body>
<h1>Heading One</h1>
<p>
This text is <strong>bold</strong>.
</p>
</body>
</html>
111
VB.NET TIFF: Modify TIFF File by Adding, Deleting & Sort TIFF
do if you want to change or rearrange current TIFF &ltsummary> ''' Sort TIFF document pages in designed & profession imaging controls, PDF document, image to
how to reverse page order in pdf; move pages in pdf
C# PowerPoint - How to Process PowerPoint
It enables you to move out useless PowerPoint document pages simply with a few a very easy PPT slide dealing solution to sort and rearrange PowerPoint slides
move pdf pages in preview; change pdf page order preview
112
Part I
Learning to Program
LaTeX
\documentclass{article}
\title{My Document}
\begin{document}
\maketitle
\section{Heading One}
This text is \textbf{bold}.
\end{document}
Each of these examples provides basic information aboutthestructure of the
content bycreating newheadings andsections, anddelimitingtheactual body
of the document.In addition,the
<strong>
and
\textbf{}
tags are intermixed
with the text to indicate that a specific word should be displayed in a bold
face font.
XML’s Relationship to HTML
Whereas HTML is a markuplanguage describing presentation with a minimal
amount of structural information, XML is entirely a structural language,
describing the relationship between elements but providing no cues about
how they should be presented. Consider this example XML document:
<addressbook name=“Personal“>
<entry>
<firstname>Alice</firstname>
<lastname>Applebaum</lastname>
<phone>+1-212-555-1434</phone>
<address>
114 Auburn Street
Apt 14
Atlanta, GA
</address>
</entry>
</addressbook>
Unlike the earlier HTML example, this has no presentation cues, and
most applications wouldn’t know how to display this information. An XML
documenttypically structuresinformation accordingtosome set of rules (such
as a schema definition, which you will explore later this chapter). In short,
XML is a cousin of the HTML standard that is generalized for multiple uses,
and is stricter in its syntax and structure.
Components of XML
XML is designed to be both human-readable and computer-readable, so it
has a strict required structure. An XML document includes tags, elements,
attributes, and entities, each of which is discussed in the following sections.
Online Merge PDF files. Best free online merge PDF tool.
By dragging your pages in the editor area you can rearrange them or delete single pages. We try to make it as easy as possible to merge your PDF files.
reordering pdf pages; how to move pages in pdf converter professional
VB.NET Word: How to Process MS Word in VB.NET Library in .NET
well programmed Word pages sorter to rearrange Word pages extracting single or multiple Word pages at one & profession imaging controls, PDF document, image to
rearrange pdf pages in reader; how to reorder pages in pdf
Chapter 7
Learning XML
113
XML Tags
An XML tag is an identifier that begins and ends with angle brackets, such
as
<tag>
.The tags are case-sensitive, so
<Tag>
is a different tag name than
<tag>
.A closing tag is the same as an opening tag, but has a forward slash
immediatelyaftertheopen bracket,such as
</tag>
.The XMLstandarddoesn’t
define any specific tags, only the rules defining how and when tags should
appear.
XML Elements
Elements are the lowest level of structure and content in an XML document,
taking some content and enclosing it in a set of open/close tags. A basic
element fromthe earlier XML example is the
<entry></entry>
section, which
defines an XML element with the name
entry
.An XML element can contain
any type of content, including more markup. Elements are governed by the
following rules:
Anonempty element must begin with an opening tag and end with a
closing tag.
An element with no content can either be delimited with start/end tags
orbe a self-closing tag. Aself-closing tag has aforward slash immediately
before the closing angle bracket, such as
<tag />
or
<tag/>
.
Again, the XML standard doesn’t really define any element types or tags,
but merely describes how the document should be structured so it conforms
to the standard.
XML Attributes
In addition to containing generic content, each XML element can have any
number of attributes, which are named values belonging to that element. An
attribute is declared in the start tag (or the self-closing tag, if used) like this:
<tag attribute=“value“></tag>
Attributes can haveanyname, buttheXMLstandardrequires that all values
be quoted using either balancedsingle quotes or balanced double quotes. This
ensures that any program conforming to the XML standards can parse the
document.
Unlike an element’s content, which describes more of a parent/child rela-
tionship, attributes describe something specific about the element, such as the
name of the element. The
addressbook
element has the name
Personal
,so it
can be distinguished easily fromany other
addressbook
that has been defined.
The distinction isn’t made through the XML standard but is extremely useful
when parsing and validating an XML document.
Process Images in Web Image Viewer | Online Tutorials
used document types are supported, including PDF, multi-page easy to process image and file pages with the deleting a thumbnail, and you can rearrange the file
change page order in pdf file; reverse page order pdf
VB.NET PowerPoint: Sort and Reorder PowerPoint Slides by Using VB.
page will teach you to rearrange and readjust amount of robust PPT slides/pages editing methods powerful & profession imaging controls, PDF document, image to
reordering pages in pdf; rearrange pages in pdf reader
114
Part I
Learning to Program
XML Entities
The XML specification forbids the ampersand (
&
)and the less-than sign (
<
)
from appearing within an element. In addition it might be confusing to see
singlequotes(
),double quotes(
)andthegreaterthan sign (
>
)in adocument.
To compensate for this, XML provides a number of escaped entities that can
be included in the place of these characters. Table 7-1 shows a list of the most
common XML entities:
Table 7-1: XML Entities
CHARACTER
EQUIVALENT ENTITY
&
&amp;
<
&lt;
>
&gt;
&quot;
&apos;
Creating Well-Formed XML
A well-formed XML document is one that is valid and parsable from a
syntactic point of view; that is, it follows all the required rules defined by the
standard. Before jumping into the rules for a well-formed document, look at
the definitions of root and non-root elements:
Root element: A root element is an element that is not nested within
another element.The firstelementin an XMLfile is the onlyroot element.
Non-root element: An element that is nested within another element.
For a document to be well formed,it must comply with the following:
Any non-empty elements begin with a start tag and end with an end tag.
Empty elements may either be delimited with start and end tags or be
marked as a self-closing element.
All attribute values are quoted with balanced single or double quotes.
Tags may be nested, but must not overlap. In particular, each non-root
elementmustbecontainedentirelywithinanotherelement.Thisdisallows
somethinglike
<b>Some <i>Text</b></i>
,becausethe
<i>
elementis not
contained entirely within another element.
Checking the syntax of an XML document can be as simple as opening it
in your favorite web browser, although more specialized tools are available.
Most modern browsers are XML-capable and can tell you which line of the
Chapter 7
Learning XML
115
document failed. In addition, you can use the XMLValidate utility on the
book’s web page (
http://wowprogramming.com/utils/xmlvalidate
.) to see
whether your document is well formed.
Validating an XML Document
The XML format itself describes the syntax of the language—that is, the
rules that make an XML document well-formed—but doesn’t delve into the
semantics, such as what attributes can belong to a given element, and what
relationships can existbetween given elements.
One method of describing the semantics of a given XML document is a
schema definition. These definitions can come in a few forms, such as:
Document Type Definition (DTD), a format native to XML.
XML Schema, a W3C standard for declaring a schema.
RELAX NG, a simple schema language available in XML formats as well
as a shorter version.
World of Warcraft defines its schema using the XML Schema standard. The
following section of the chapter focuses on this standard, and how to read it
and use it for validating your files.
Example Schema Definition
The following is a simple XML Schema definition foran address book:
<xs:schema
xmlns:xs=“http://www.w3.org/2001/XMLSchema“>
<xs:element name=“addressbook“ type=“AddressBook“/>
<xs:complexType name=“AddressBook“>
<xs:sequence>
<xs:element name=“name“ type=“xs:string“/>
<xs:element name=“phone“ type=“xs:string“/>
<xs:element name=“address“ type=“xs:string“/>
</xs:sequence>
</xs:complexType>
</xs:schema>
The initial line is standard for declaring a schema; it simply points to the
standard document for the W3C definition of the XML Schema definition.
The second tag defines a new element named
addressbook
,creating a new
<addressbook>
tag, and associating it with the named type
AddressBook
.The
rest of the sequence defines what it means to be of type
AddressBook
,namely
asequence of four different named elements that is simply string content.
116
Part I
Learning to Program
Example XML Document
The following is a file that declares its schema to exist in the file
addressbook.xsd
.Assuming both files are in the same directory, this file can
be validated against the schema directly:
<addressbook
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance“
xsi:noNamespaceSchemaLocation=“addressbook.xsd“>
<name>Alice Applebaum</name>
<phone>+1-212-555-1434</phone>
<address>
114 Auburn Street
Apt 14.
Atlanta, GA
</address>
</addressbook>
You can use a number of utilities to validate an XML schema on different
platforms:
XMLNanny (MacOSX),
www.xmlnanny.com
Microsoft Visual Studio (Windows),
www.microsoft.com/express
XMLSpy,
www.altova.com/xml-editor
DecisionSoft’sOnlineXMLValidator,
http://tools.decisionsoft.com/
schemaValidate
Figure 7-1 shows this XML document being validated against the
given schema using XMLNanny. In addition to these downloadable tools
there is a very simple web-based validator that you can use at
http://
wowprogramming.com/utils/xmlvalidate
.
The document passes the validation step because it’s been structured
correctly and the schema has been followed exactly. As a matter of fact,
the example schema requires the elements of
<addressbook>
to appear in the
exact order shown. If you were to swap the order of
<name>
and
<phone>
,
the document would no longer validate. To add the elements in any order,
as long as you include them all, you can change the
<xs:sequence>
and its
matching close tag to read
<xs:all>
.
Exploring the Schema
One advantage of a strict markup like XML being used for layout is that all
the information necessary to write complex layouts is contained within the
schema itself. The schema reveals to you all of the valid options for any given
tag or attribute. In addition, a number of tools are available to make it easier
for you to edit XML files.
Chapter 7
Learning XML
117
Figure 7-1: Validating with XMLNanny
For example, XMLSpy, Visual Studio, and other XML editors can provide
auto-complete when you’re creating a new file, so attribute names are auto-
matically completed,and some editors even give you dropdowns to select the
values when they are defined.
XML in World of Warcraft
The WoW user interface has an incredibly detailed XML schema that dictates
exactly what tags, attributes, and values are valid when defining frames. To
better understand how everything is structured, you can unpack the latest
XML schema following the directions given in Chapter 8. It will extract to the
Blizzard Interface Data (enUS)/FrameXML/UI.xsd
file under your WoW
installation, where
enUS
is your locale. Here’s an excerpt from the file:
<xs:simpleType name=“ORIENTATION“>
<xs:restriction base=“xs:NMTOKEN“>
<xs:enumeration value=“HORIZONTAL“/>
<xs:enumeration value=“VERTICAL“/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name=“ColorFloat“>
<xs:restriction base=“xs:float“>
<xs:minInclusive value=“0.0“/>
118
Part I
Learning to Program
<xs:maxInclusive value=“1.0“/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name=“ColorType“>
<xs:attribute name=“r“ type=“ColorFloat“ use=“required“/>
<xs:attribute name=“g“ type=“ColorFloat“ use=“required“/>
<xs:attribute name=“b“ type=“ColorFloat“ use=“required“/>
<xs:attribute name=“a“ type=“ColorFloat“ default=“1.0“/>
</xs:complexType>
<xs:complexType name=“GradientType“>
<xs:sequence>
<xs:element name=“MinColor“ type=“ColorType“/>
<xs:element name=“MaxColor“ type=“ColorType“/>
</xs:sequence>
<xs:attribute name=“orientation“ type=“ORIENTATION“ default=“HORIZONTAL“/>
</xs:complexType>
This excerpt from the WoW XML schema defines a series of types that are
used later in the schema, along with attributes and valid values. The first
block defines a new type called
ORIENTATION
.This value is an enumeration,
which means it must be one of the listed values, specifically
HORIZONTAL
or
VERTICAL
.
The second block defines a new type called
ColorFloat
,which must be a
floating-point number. In this case, it must be between the values
0.0
and
1.0
inclusive. Next, a complex type called
ColorType
is defined; it has three
required attributes and one optional attribute. Any element of this type must
supply values for
r
,
g
,and
b
(which mustconformtotherules for
ColorFloat
),
and may optionally provide a value for
a
.These correspond to the red, green,
blue, and alpha values of a given color.
Finally, a complex type
GradientType
is defined; it takes exactly two items
in sequence, a
<MinColor>
tag and a
<MaxColor>
tag, both of type
ColorType
.
Additionally, this tag can take an orientation attribute, described earlier.
Using a GradientType
Assuming there is a
<Gradient>
tag with the type
GradientType
defined
somewhere, the following would be a valid usage of this schema:
<Gradient orientation=“VERTICAL“>
<MinColor r=“1.0“ g=“0.0“ b=“0.3“ a=“1.0“/>
<MaxColor r=“0.0“ g=“0.0“ b=“0.0“ a=“1.0“>
</Gradient>
Documents you may be interested
Documents you may be interested