asp.net c# view pdf : Acrobat split pdf bookmark SDK software API wpf windows winforms sharepoint OpenSceneGraph.3.0.Beginners.Guide-32086-part893

Compila瑩on and Installa瑩on of OpenSceneGraph
[
38 
]
W
h
a
t
j
u
s
t
h
a
p
p
e
n
e
d
?
Everything is done as if you are working on your own Visual Studio solu瑩ons! The only 
difference is that every subproject will include an extra 
C
M
a
k
e
L
i
s
t
s
.
t
x
t
file, which will 
check if the source files or se瑴ngs were modified in the pre-build step, and automa瑩cally 
regenerate the project if necessary.
Go to your installa瑩on directory to see if all of the necessary files are already there. Then 
run the 
o
s
g
v
e
r
s
i
o
n
and 
o
s
g
v
i
e
w
e
r
commands in the binary directory to see if the 
new package performs correctly. Do not forget to hide or uninstall the prebuilt packages 
generated by the quick installer in order to avoid any confusion caused by the coexistence  
of more than one binary package.
Please note that, when using 
D
e
b
u
g
build type, the installed filename will have a pos瑦ix, of 
d
. For example, 
o
s
g
v
i
e
w
e
r
.
e
x
e
will be renamed to 
o
s
g
v
i
e
w
e
r
d
.
e
x
e
, to be dis瑩nct from 
the 
R
e
l
e
a
s
e
distribu瑩on. This behavior can be changed by se瑴ng the CMAKE_DEBUG_
POSTFIX op瑩on and re-configuring the solu瑩on.
Pop quiz – the difference between ALL_BUILD and 'build all'
Some developers may love the following steps for building their Visual Studio solu瑩ons: open 
the Batch Build dialog box, select all projects in the current solu瑩on for inclusion in the batch 
build, start the build process, and go and have a cup of coffee (maybe more). Do you think 
this will produce the same result as using ALL_BUILD and then the INSTALL project? Will they 
take the same 瑩me?
Generating packages using gcc
Most UNIX systems adopt the GNU compiler collec瑩on (gcc) as the major compiler system. 
The gcc uses makefiles to build and manage projects, which is a li瑴le more complex than 
Visual Studio solu瑩ons, but is extremely powerful.
Time for action – building with a UNIX makefile
With a desktop system like KDE and Gnome, a UNIX developer may execute the cmake-gui 
applica瑩on and work the way described above. The only difference is that the generator 
should be set to Unix Makefiles, and a makefile hierarchy will be generated instead of Visual 
Studio solu瑩ons.
Acrobat split pdf bookmark - Split, seperate PDF into multiple files in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Explain How to Split PDF Document in Visual C#.NET Application
break pdf; cannot print pdf file no pages selected
Acrobat split pdf bookmark - VB.NET PDF File Split Library: Split, seperate PDF into multiple files in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET PDF Document Splitter Control to Disassemble PDF Document
break a pdf into multiple files; a pdf page cut
Chapter 2
[
39 
]
1.
A晴er closing the CMake GUI, start a terminal (make sure you are logged in 
as root unless CMAKE_INSTALL_PREFIX has been set to a 
path in the user's home directory), and then type:
#
m
a
k
e
#
m
a
k
e
i
n
s
t
a
l
l
2.
Built files will be exported to the specified place, usually 
/
u
s
r
/
l
o
c
a
l
or the 
path defined by CMAKE_INSTALL_PREFIX.
W
h
a
t
j
u
s
t
h
a
p
p
e
n
e
d
?
You will find that cmake-gui is able to work on most windowing systems, if you have 
downloaded a ready-made binary package for your pla瑦orm. Or you can use the  
curses-based ccmake. This is a text-mode GUI with the same interface as cmake-gui
You can set op瑩ons with it visually, switch binary choices from 
T
R
U
E
to 
F
A
L
S
E
via the 
Enter key, and then when you are done, press c for configure and g for generate. However, 
on a console, the whole process should start from the cmake command-line. Take a Linux 
console—for example, assuming source in 
/
h
o
m
e
/
O
p
e
n
S
c
e
n
e
G
r
a
p
h
and the binary 
directory in 
/
h
o
m
e
/
b
u
i
l
d
_
O
p
e
n
S
c
e
n
e
G
r
a
p
h
, you may have to build OSG source code 
in the following way:
#
m
a
k
e
#
m
a
k
e
i
n
s
t
a
l
l
More op瑩ons could be added as command-line arguments here.
Have a go hero – checking mis-compiled parts
So far you have finished the compila瑩on of OSG from the source code. Before star瑩ng to use 
this for future development, spend a li瑴le more 瑩me to compare the outcomes of using a 
quick installer and compiling from the source code. Look into the two installa瑩on directories 
and try to find if there is any difference among files and subfolders.
‹
The bin subfolder contains all of the u瑩li瑩es and shared libraries of the core OSG, as 
well as an 
o
s
g
P
l
u
g
i
n
s
-
x
.
x
.
x
subdirectory made up of dozens of file I/O plugins. 
Here, 
x
.
x
.
x
refers to the OSG distribu瑩on version. Note that, shared libraries and 
plugins will go into the 
l
i
b
subfolder on UNIX.
C# PDF Converter Library SDK to convert PDF to other file formats
manipulate & convert standard PDF documents in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat.
can print pdf no pages selected; break apart pdf
.NET PDF Document Viewing, Annotation, Conversion & Processing
Merge, split PDF files. Insert, delete PDF pages. Edit, update, delete PDF annotations from PDF file. Print. Support for all the print modes in Acrobat PDF.
can't select text in pdf file; break a pdf into parts
Compila瑩on and Installa瑩on of OpenSceneGraph
[
40 
]
‹
The include subfolder contains the C++ headers that declare the exported OSG 
classes, func瑩ons, and iden瑩fiers that are usable in user applica瑩ons.
‹
The lib subfolder contains all of the sta瑩c-link libraries that will be used as 
dependencies in user applica瑩ons, and import libraries when using DLLs  
on Windows.
‹
The share subfolder contains an 
O
p
e
n
S
c
e
n
e
G
r
a
p
h
/
b
i
n
subdirectory full of 
example executables, all of which could be run to test various features.
Note that the 
o
s
g
P
l
u
g
i
n
s
-
x
.
x
.
x
subdirectory may be placed in the 
l
i
b
folder in 
UNIX systems.
Configuring environment variables
The last but not least thing to do before programming with the installed OSG is to configure 
some important environment variables. It is OK if you ignore this sec瑩on and con瑩nue to the  
next chapter, but understanding what environment variables do and how to make use of 
them will bring about significant benefits.
Environment variables are a set of global values that may affect a program's star瑩ng 
behaviors. OSG has defined a number of environment variables that can be used to change 
its internal running states and display se瑴ngs. Due to limited textual length, only the most 
commonly-used variables are introduced here. These are automa瑩cally set for the Current 
User if you are using the installer on Windows:
‹
OSG_FILE_PATH iden瑩fies the loca瑩on of the sample data. According to the path 
value kept by it, OSG could directly find and read any file archived in the specified 
path, otherwise you may have to enter an absolute path like 
C
:
/
P
r
o
g
r
a
m
s
.
‹
OSG_NOTIFY_LEVEL sets a value that controls the verbosity level of debugging 
messages displayed by OSG. The default value is NOTICE. We will discuss this 
variable, and the no瑩fica瑩on mechanism, in more detail in Chapter 3, Crea瑩ng 
Your First OSG Program.
‹
OSG_ROOT is not used by OSG itself. It defines the OSG installa瑩on path, 
which is quite useful for other independent projects that use OSG and the  
CMake build system.
To set environment variables manually, you can either change the profiles for permanent 
modifica瑩on, or start the command-line shell for temporary changes during set-up. On 
Windows, an environment variable dialog can be found by right-clicking the My Computer 
icon and selec瑩ng Proper瑩es | Advanced, but to set a temporary one you can type 
s
e
t
V
A
R
I
A
B
L
E
=
v
a
l
u
e
in the shell before running the applica瑩on. On UNIX, use start-up profiles 
and the 
e
x
p
o
r
t
/
s
e
t
e
n
v
commands instead.
C# Windows Viewer - Image and Document Conversion & Rendering in
standard image and document in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. Convert to PDF.
break pdf into multiple documents; pdf specification
C# Word - Word Conversion in C#.NET
Word documents in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. Word to PDF Conversion.
c# print pdf to specific printer; pdf file specification
Chapter 2
[
41 
]
Summary
This chapter taught us how to compile, install, and configure an OSG development 
environment, either by using the prebuilt binaries or completely from the source code.  
It also illustrated how to make use of the applica瑩on u瑩li瑩es provided by the OSG 
distribu瑩on.
More specifically, in this chapter we covered:
‹
The minimum system requirements for building up an OSG development 
environment
‹
How to u瑩lize the quick installer in order to set up an OSG development 
environment in a very efficient manner
‹
How to set up an OSG development environment from the source code  
and the CMake tools on different opera瑩ng systems
‹
How to use the scene graph viewer and converter that are distributed with OSG
We have also discussed how to configure environment variables in order to facilitate future 
programming. Now you are ready to create your first OSG program.
3
Creating Your First 
OSG Program
This chapter demonstrates a common method to create your own OSG 
applica瑩ons. The CMake build system, which has already been discussed in 
the last chapter, will be used for quickly genera瑩ng solu瑩ons and makefiles on 
different pla瑦orms. The na瑩ve memory management mechanism of OSG is also 
explained in detail, which is designed to avoid memory leaks at run-瑩me, OSG 
also supports a refined argument parser and a debugging message no瑩fier, 
both of which will be introduced.
In this chapter, we will:
‹
Show how to build and run your first OSG program with the CMake tool
‹
Discuss the u瑩liza瑩on of OSG na瑩ve smart pointers for automa瑩c garbage collec瑩on 
and memory dealloca瑩on
‹
Introduce the argument parser that will read arguments from the command line
‹
Work with the message no瑩fier tool to trace and debug OSG programs
Crea瑩ng Your First OSG Program
[
44 
]
Constructing your own projects
To build an executable program from your own source code, a pla瑦orm-dependent solu瑩on 
or makefile is always required. For Windows developers, we have already introduced 
a project wizard tool in the last chapter. But this doesn't work for UNIX and Mac OS X 
developers, or even those who are using MinGW and Cygwin under Windows.
At the beginning of this chapter, we are going to introduce another way to construct  
pla瑦orm-independent projects with the CMake system, by which means, we are able to  
focus on interac瑩ng with the code and ignore the painstaking compiling and building process.
Time for action – building applications with CMake
Before construc瑩ng your own project with CMake scripts, it could be helpful to keep 
the headers and source files together in an empty directory first. The second step is  
to create a 
C
M
a
k
e
L
i
s
t
s
.
t
x
t
file using any text editor, then and start wri瑩ng some simple 
CMake build rules.
1.
The following code will implement a project with addi瑩onal OSG headers 
and dependency libraries. Please enter them into the newly-created  
C
M
a
k
e
L
i
s
t
s
.
t
x
t
file:
f
i
n
d
_
p
a
c
k
a
g
e
(
o
s
g
)
e
n
d
m
a
c
r
o
(
)
Chapter 3
[
45 
]
2.
We have only added a 
m
a
i
n
.
c
p
p
source file here, which is made up of the "Hello 
World" example and will be compiled to generate an executable file named 
M
y
P
r
o
j
e
c
t
. This small project depends on five major OSG components. All of 
these configura瑩ons can be modified to meet certain requirements and different 
user applica瑩ons, as explained in the following chapters.
3.
Next, start 
c
m
a
k
e
-
g
u
i
and drag your 
C
M
a
k
e
L
i
s
t
s
.
t
x
t
into the GUI. You may not 
be familiar with the CMake scripts to be executed, at present. However, the CMake 
wiki will be helpful for further understanding: 
C
M
a
k
e
.
4.
Follow the step-by-step instruc瑩ons provided in the last chapter to create and build 
a Visual Studio solu瑩on or a makefile.
5.
The only point is that you have to ensure that your CMake so晴ware version is 
equal to or greater than 2.6, and make sure you have the 
O
S
G
_
R
O
O
T
environment 
variable set. Otherwise, the 
f
i
n
d
_
p
a
c
k
a
g
e
(
)
macro may not be able to find 
OSG installa瑩ons correctly. The following image shows the unexpected errors 
encountered because OSG headers and libraries were not found in the path 
indicated by 
O
S
G
_
R
O
O
T
(or the variable was just missed):
Crea瑩ng Your First OSG Program
[
46 
]
6.
Note that, there is no 
I
N
S
T
A
L
L
project in the Visual Studio solu瑩on, or any 
m
a
k
e
i
n
s
t
a
l
l
command to run at this 瑩me, because we don't write such CMake scripts 
for post-build installa瑩ons. You could just run the executable file in the build 
directory directly.
W
h
a
t
j
u
s
t
h
a
p
p
e
n
e
d
?
CMake provides easy-to-read commands to automa瑩cally find dependencies for user 
projects. It will check preset directories and environment variables to see if there are any 
headers and libraries for the required package.
The environment variable 
O
S
G
_
R
O
O
T
(
O
S
G
_
D
I
R
is OK, too) will facilitate in looking for OSG 
under Windows and UNIX, as CMake will first search for valid paths defined in it, and check if 
there are OSG prebuilt headers and libraries exis瑩ng in these paths.
Pop quiz – configuring OSG path options yourselves
Your CMake may not be able to find the OSG headers and development files for special 
reasons, for instance, the headers and libraries may be placed in different places, or you just 
intend to use a distribu瑩on different from the one set by 
O
S
G
_
R
O
O
T
or 
O
S
G
_
D
I
R
.
Can you set CMake op瑩ons yourselves at this 瑩me? There are o晴en three op瑩ons in each 
OSG-related group (
O
P
E
N
T
H
R
E
A
D
S
O
S
G
O
S
G
D
B
, and so on), such as 
O
S
G
_
I
N
C
L
U
D
E
_
D
I
R
O
S
G
_
L
I
B
R
A
R
Y
, and 
O
S
G
_
L
I
B
R
A
R
Y
_
D
E
B
U
G
. What do they mean, in your opinion?
Have a go hero – testing with different generators
Just try a series of tests to generate your project, using Visual Studio, MinGW, and the UNIX 
gcc compiler. You will find that CMake is a convenient tool for building binary files from 
source code on different pla瑦orms. Maybe this is also a good start to learning programming 
in a mul瑩-pla瑦orm style.
Using a root node
Now we are going to write some code and build it with a self-created CMake script. We will 
again make a slight change to the frequently-used "Hello World" example.
Chapter 3
[
47 
]
Time for action – improving the "Hello World" example
The included headers, 
<
o
s
g
D
B
/
R
e
a
d
F
i
l
e
>
and 
<
o
s
g
V
i
e
w
e
r
/
V
i
e
w
e
r
>
, do not need to be 
modified. We only add a root variable that provides the run瑩me access to the Cessna model 
and assigns it to the 
s
e
t
S
c
e
n
e
D
a
t
a
(
)
method.
1.
In the main entry, record the Cessna model with a variable named 
r
o
o
t
:
r
e
t
u
r
n
v
i
e
w
e
r
.
r
u
n
(
)
;
2.
Build and run it at once:
3.
You will see no difference between this example and the previous "Hello World". So 
what actually happened?
W
h
a
t
j
u
s
t
h
a
p
p
e
n
e
d
?
In this example, we introduced two new OSG classes: 
o
s
g
:
:
r
e
f
_
p
t
r
<
>
and 
o
s
g
:
:
N
o
d
e
The 
o
s
g
:
:
N
o
d
e
class represents the basic element of a scene graph. The variable 
r
o
o
t
stands for the root node of a Cessna model, which is used as the scene data to be visualized.
Meanwhile, an instance of the 
o
s
g
:
:
r
e
f
_
p
t
r
<
>
class template is created to manage the 
node object. It is a smart pointer, which provides addi瑩onal features for the purpose of 
efficient memory management.
Documents you may be interested
Documents you may be interested