c# pdf viewer open source : How to move pages within a pdf Library application component .net html wpf mvc World%20of%20Warcraft%20Programming%20(2nd%20Edition)138-part1804

APP EN DI X
C
Tracking History Using Version
Control Systems
When youarecreating your first few addons you’ll likely justcreate thefiles
on your machine and continue to add to them as the addon matures. If you
decidetoreleasetheaddon,you’llzipupthatfolderandpostitsomewherefor
theuserstofindit.Thissortofprocessworksgreatforverysimpleaddons,but
once you start making larger addons or collaborating with other developers
youmayfindthe needforsomethingabitmorestructured.
Astandardtechniquefor source code managementin application develop-
mentis calledversioncontrol.In versioncontrolsystems,thedevelopercreates
newsnapshotsthroughoutthedevelopmentprocessandaddsthosesnapshots
tothesystem.The code can be comparedbetween snapshots,and developers
can usethesnapshotstoexaminethehistoryofanaddontobetterunderstand
howa bugorproblemmighthaveoccurred.
Threemain typesofversion control systemsareusedin theaddondevelop-
ment community: Subversion, Git, and Mercurial. This appendix introduces
the basicconcepts of version control in each of themand points you toward
resourceswith more in-depthinformation.
Subversion
One of the moreprevalentversion control systems isSubversion,designedas
a replacement for the much older CVS version control system. This section
serves as a short guide to using Subversion; consult the full documentation
availableat
http://svnbook.red-bean.com
.
1339
How to move pages within a pdf - 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; reorder pdf page
How to move pages within a pdf - 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
how to reorder pages in pdf online; pdf change page order
1340 Part V
Appendixes
OnemajorpointthatmustbemadeaboutSubversionisthat,unliketheother
version control systems discussed later in this chapter, it requires a central
serverforyoutocommitanychanges.Thismaybearequirementyoucan live
with, but there are alternatives that enable you to make changes locally, and
then uploadthemtoa serverata latertime.
Terminology
The following is a list of terms that you will encounter when working with
Subversion,andreadingthis section.
Repository—A central location that houses the version control system
(often shortenedto repo).There istypically onerepositoryperprojector
addon, although this requirementis not hard and fast.The repositoryis
oftenlocatedon aremoteserverandmayhaveanaddressthatlooks like
oneofthefollowing:
http://hostname/repository/address
svn://hostname/repository/address
Commit—When thedevelopermakeschangestothelocalcodeandthen
wants to push those changes into the central repository, he makes a
commit.A commitmustinclude alogmessagethatexplains the changes
thatarebeingcommitted.Commitsaren’texpectedeverysingletimeyou
savethefileonyourmachine,butratheratrelevantstoppingpoints(such
as when you’vefixedaspecificbug,oraddedaparticularfeature).
Checkout—A user or developer can download the current state of a
given repository by checking itout. This downloads the current files as
wellassomebasichistoryinformation.Typically,any usercancheck out
arepository,but only developerscan commit.
Workingcopy—Thelocalcopyoftherepositorythatadeveloperobtains
whenchecking outaSubversion repository.
Diff—Afileshowingthedifferencesbetweentwoversionsofa givenfile
ortwodifferentstatesof arepository.
Layout of a Repository
ThelayoutofaSubversionrepositorytendstoincludethefollowingsubdirec-
toriesattherootlevel:
Trunk—The main development directory. This typically represents the
bleedingedgeofdevelopmentandshouldbeusedwithcare.It’sgenerally
meantfordevelopersandtestersonly.
Branches—Used when multiple versions of software are being worked
on at the same time. For example, if you’re still providing support for
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
Able to add and insert one or multiple pages to existing adobe PDF of adding and inserting a new blank page to the existing PDF document within a well
how to rearrange pdf pages online; how to move pdf pages around
C# PowerPoint - How to Process PowerPoint
It enables you to move out useless PowerPoint document pages simply with a dealing solution to sort and rearrange PowerPoint slides order within C#.NET
how to rearrange pages in a pdf reader; reorder pages in a pdf
AppendixC
Tracking HistoryUsing Version ControlSystems 1341
some stable version of youraddon, you might make a branch to keep it
separatefromyourtrunkdevelopment.
Tags—Tagsaretypicallysynonymouswithreleases,allowingyoutosee
the state of the source code at the point you released a version to the
public.
Obtaining Subversion
You can download Subversion for your platform from the main Subversion
websiteat
http://subversion.tigris.org/getting.html
.Packages exist for
both MacOSXandMicrosoftWindowsmachines.Oncethepackagehasbeen
installed, you can test that your system works properly by running the
svn
commandina terminal orcommandwindow:
> svn
Type 'svn help’ for usage
If you see some other message, the command may not be in your path
and you’ll have to do a bit more experimentation. Several good guides to
installing and using Subversion on any system are linked directly from the
mainSubversion website.
Command Primer
ThissectiondetailsthemajorSubversioncommandsyouwilluseinthecourse
ofdaily development.As always, more detailis availableusing the
svn help
command,orin theofficial documentation.
svn checkout <url> [path]
Checking outa Subversion repository isa matter of calling the
svn checkout
commandwith the URLofthe repository. By default,a folderiscreatedwith
thesamenameyouare checking out, butyoucan specifya path argumentto
use a different folder name instead. The following command checks out the
code for TomTom (one of my addons) into the folder
trunk
at your current
location:
svn checkout svn://svn.wowinterface.com/TomTom-17/trunk
Here’sacommandthatchecksouttherepositoryintoa foldercalled
TomTom
in yourcurrentdirectory:
svn checkout svn://svn.wowinterface.com/TomTom-17/trunk TomTom
The following command checks out the repository into the folder
C:\Subversion\TomTom
on yourcomputer:
svn checkout svn://svn.wowinterface.com/TomTom-17/trunk
c:\Subversion\TomTom
C# TIFF: C#.NET Code to Process TIFF, RasterEdge XDoc.Tiff for .
Our supported image and document formats are: TIFF, JPEG, GIF, BMP, PNG, PDF, Word and DICOM. It represents a high-level model of the pages within a Tiff file.
move pages in pdf reader; move pages in pdf acrobat
C# TIFF: How to Delete Page(s) from Multi-page TIFF File Using
Word, Excel, PowerPoint to Tiff. Convert PDF to Tiff. Page Edit. Insert Pages into Tiff File. Delete Tiff Pages. Move Tiff Page Position. Rotate a Tiff Page. Extract
how to rearrange pdf pages reader; how to rearrange pages in pdf using reader
1342 Part V
Appendixes
svn update [path]
The
update
command is used to update a working copy by contacting the
central server and downloading any changes that have been made since the
last update. By default, it updates whatever directory you are currently in
(assuming it’s aworkingcopy).
Ifthecurrentdirectoryis aworking copy, the followingcommandupdates
ittothe latestrevision:
svn update
This command updates the working copy in
c:\Subversion\TomTom
to the
latestrevision:
svn update c:\Subversion\TomTom
svn add <path>
Ifyouarecreatingfiles,ratherthan editingexistingfiles,youwillneedtoadd
them to the system before you can commit them. You do this using the
svn
add
command.Ifyouspecify afilename, thatfilewillbeadded.Ifyouspecify
apath,thepathwill besearchedrecursively,addingall files within that path.
Thefollowingcommandaddsthefile
TomTom.lua
toversion control:
svn add TomTom.lua
Thisadds allfiles inthecurrentdirectory (andbeneath):
svn add .
Once files have been added to the system, they can be manipulated using
theother
svn
commands.
svn commit [path]
The
commit
commandis usedwhen youhavechangesthatneedtobepushed
to a central repository. On most systems, your default text editor will be
openedandyou’llbepromptedfora commitmessage.Simplysavethefilein
thetexteditorandthecommitwill begin.
You may be prompted for a username or password if this is your first
commit. Whichever service runs your repository should be able to provide
you with this information. As usual, this command assumes the current
directoryisa workingcopy,butaspecificpathcan bespecified.
svn status
To determine the state of the files in a repository, you can use the
status
command.Itcandisplaywhatfileshavependingchanges,whatfilesarenew,
C# Image: C# Code to Encode & Decode JBIG2 Images in RasterEdge .
images codec into PDF documents for a better PDF compression; RasterEdge JBIG2 codec SDK controls within C# project Move license text to the new project folder
pdf rearrange pages online; how to move pages around in a pdf document
C# PDF Convert to Jpeg SDK: Convert PDF to JPEG images in C#.net
Thumbnails can be created from PDF pages. quickly convert a large-size multi-page PDF document to of high-quality separate JPEG image files within .NET projects
how to rearrange pdf pages; rearrange pdf pages in preview
AppendixC
Tracking HistoryUsing Version ControlSystems 1343
andwhatfilesmightbemissing(ifany).ConsulttheSubversiondocumentation
formoreinformationaboutthespecificoutputofthiscommand.
svnlog [path]
The
log
commandcan beusedtogiveahistoryoflogmessages foraworking
copy. By default, it uses the current directory, but you can specify a specific
pathifyouchoose.ThefollowingisasampleSubversionlogforafewrevisions
totheTomTomrepository:
------------------------------------------------------------------------
r192 | Cladhaire-15704 | 2008-12-22 08:21:03 +0000 (Mon, 22 Dec 2008) | 2 lines
* Only try to set the corpse waypoint when c,z,x,y are positive numbers
------------------------------------------------------------------------
r191 | Cladhaire-15704 | 2008-12-21 21:41:53 +0000 (Sun, 21 Dec 2008) | 2 lines
* Added a Corpse arrow that can be configured on the general options screen.
When enabled, a non-persistent waypoint arrow will be set directing you toward
your corpse.
It will be removed when you resurrect.
svndiff [path]
The
diff
command will printa listing of thedifferences between thecodein
your working copy, versus the last committothe repository. This is a handy
waytocheckwhatchangesyou’vemadetothe filebefore committing.
Creating a Local Repository
Although Subversion is designed to be used with a central server, you
can actually create repositories locally on your machine using the
svnadmin
command. Thecommandtakes apath that will serveas the destinationofthe
repositoryonthefilesystem.Thefollowingcommandcreatesanewrepository
in the
C:\Subversion\MyAddon
folderthat can then be usedto check out and
commit,assumingthe
C:\Subversion
directoryalready exists:
svnadmin create C:\Subversion\MyAddon
Instead of using the
http://
or
svn://
type of URL, you use
file:///
(note the extra /in the URL). Tocheck outthis repository,usethe following
command:
svn checkout file:///c:/Subversion/MyAddon
Youcan nowusethis new repositorytostoreyourhistorywithout needing
to contact a remote server. This allows you to store a history of your code
locally so youcan takeadvantageofthe otherfeaturesofSubversion.
C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
Page: Replace PDF Pages. Page: Move Page Position. Page: Extract View PDF document in continuous pages display mode Search text within file by using Ignore case or
change page order pdf preview; how to rearrange pages in pdf document
C# Word - Process Word Document in C#
It enables you to move out useless Word document pages simply with a You are capable of extracting pages from Microsoft Word document within C#.NET
reorder pdf pages; move pdf pages
1344 Part V
Appendixes
Git and Mercurial
Git andMercurial (hg)are distributedversion control systems, which means
they do not need a central repository in order to function. By default, each
repository that is created contains the entire history of the project and can
function independentofeach other. Bothof thesesystemstry to makeiteasy
for thedevelopertowork with their code locally withoutneedingaccess toa
remoteserver,whilemakingiteasytosubmit changes to aproject.
Mercurial began as a spin-off of the Git project so many of the commands
and much of the terminology is the same. Any differences between the two
systems aredetailedineach individualsection.
Itshouldbenotedthatthesetwosystemsarerelatively morecomplexthan
Subversion and are a bit less user-friendly, however they can offer many
advantagesaswell.
Terminology
TheterminologyforGitand Mercurial differabitfromthatofSubversion.
Repository—In adistributedsourcecodemanagementsystem,a reposi-
toryreferstoacopyofthesourcecodeandallofthehistoricalinformation
about aproject.Repositoriescan be cloned (copied),andthe two reposi-
torieswillbeindependentofeachother.
Clone—To retrieve your own local copy of a repository you can clone
an existingone.This retrieves allofthedata necessarytohaveyourown
self-containedrepository.
Commit—When the developer makes changes to the local code and
then wants to push those changes into the central repository, he makes
a commit. A commit must include a log message that explains the
changes thatarebeingcommitted.Commitsaren’texpectedeverysingle
time you save the file on your machine, but rather at relevant stopping
points (such as when you’ve fixed a specific bug, or added a particular
feature).
Diff—Afileshowingthedifferencesbetweentwoversionsofa givenfile
ortwodifferentstatesof arepository.
Branch—A branch of development (for example you could create a
branch toaddanewfeature,ortofixaspecificbug).Branches allowyou
tosegregateyourdevelopmentintodifferentcompartmentsthatcan later
bemergedbacktogether.
Merge—Merging is a process where you take two divergent branches
and merge themback together into a single branch.This is useful when
workingin acollaborativeenvironment.
Master—Masteris the mainbranch ina Gitrepository.
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
Page: Replace PDF Pages. Page: Move Page Position. Page: Copy View PDF document in continuous pages display mode. Search text within file by using Ignore case or
rearrange pages in pdf file; change page order pdf reader
VB.NET PDF Convert to Word SDK: Convert PDF to Word library in vb.
NET code. All PDF pages can be converted to separate Word files within a short time in VB.NET class application. In addition, texts
how to move pages in pdf reader; how to reorder pages in pdf
AppendixC
Tracking HistoryUsing Version ControlSystems 1345
HEAD—This is a special name for the most recent version of a branch.
For example, HEAD of master is the most recent commit in the master
branch.
Obtaining Git
InstallingGitisabitmorecomplexthanSubversionandvarieswildlydepend-
ingonoperatingsystem.TwomainpackagescanbeusedtoinstallGitforMac
OSX:
http://metastatic.org/source/git-osx.html
http://code.google.com/p/git-osx-installer/
Both pages describe the installation procedure and should be straightfor-
ward.ForMicrosoftWindows,thereisapackagecalledmsysgitthatprovides
an installationpackage at
http://code.google.com/p/msysgit
.
YoucanfinddocumentationforGitintheGitUser’sManualat
www.kernel.
org/pub/software/scm/git/docs/user-manual.html
.
Obtaining Mercurial (hg)
You can find prebuiltpackages forinstalling Mercurial at
www.selenic.com/
mercurial/wiki/index.cgi/BinaryPackages
.Anumberofmethodsofinstal-
lationexistforboth MicrosoftWindows andMacOSX.
You can find documentation for Mercurial online at
http://hgbook.
red-bean.com
.
Typical Usage
Curseforge (
http://curseforge.com
)is an addon development community
created by
http://curse.com
.It is the most likely place you will see addon
development using Mercurial and Git. Once you have created a new project
and it has been approved, you can create a new repository. Regardless of
whether you choose Git or Mercurial, you will be given two differentURLs.
Thefirstisthepublicaddress,whichcanbeusedby non-developerstofollow
your project. The second is the development URL, which is used to actually
commitcodetoyourproject.
Git
To developyour addon with Git, youmust first create a local repository that
containsyourcode.Youcanaccomplishthisbycreatinganewemptydirectory
andissuingthe
git init
command.
> cd MyAddon
> git init
Initialized empty Git repository in /private/tmp/MyAddon/.git/
1346 Part V
Appendixes
Oncethat’sdoneyoucan begincopyingfilesinandmakingchanges.Before
you can commit any files, you must notify Git that they should be tracked
usingthe
git add
command.
> git add MyAddon.toc
> git add MyAddon.lua
Youcan checkthestatus oftherepositoryusingthe
git status
command:
> git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#
(use “git rm --cached <file>...“ to unstage)
#
#
new file: MyAddon.lua
#
new file: MyAddon.toc
#
Here the status shows that two new files are ready to be committed. You
can actuallyperforma commitusingthe
git commit
command:
> git commit -m “Adding empty files for MyAddon“
Created initial commit 5e48c92: Adding empty files for MyAddon
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 MyAddon.lua
create mode 100644 MyAddon.toc
This specifies the log message using the
-m
option, but you could just as
easily leave that off and Git will open a text editor for you to input the log
message.
Although thiscommandmadeacommittothelocalrepository,thereis still
nothingon theremote repository at Curseforge.To fixthis,youcan push the
currentrepositoryuptotheremotelocation byusingthe
git push
command,
specifyingtheremoteaddressandthebranchyouwanttopush:
> git push git@git.curseforge.net:wow/myproject/mainline.git master
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 229 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@git.curseforge.net:wow/myproject/mainline.git
* [new branch]
master -> master
ThistellsGitthatyouwanttopushthemasterbranchtotheremotelocation
specified. You will be prompted for your authentication information (this
AppendixC
Tracking HistoryUsing Version ControlSystems 1347
depends entirely on what host you are pushing to) andthe masterbranch is
createdon theremoterepository.
Inthefutureyoucanpushnewchanges simply byrunning:
> git push git@git.curseforge.net:wow/myproject/mainline.git
If you are working collaboratively in the project, you can also retrieve any
newchangesbyrunninga
git pull
command:
> git pull git@git.curseforge.net:wow/myproject/mainline.git
Mercurial
Thefollowingprocess isverysimilartoGitbuttheoutputmay differslightly.
First, you must create a local repository that contains your code. You can
accomplish this by creating a new empty directory and issuing the
hg init
command(thereisnooutputfromthiscommand):
> cd MyAddon
> hg init
Oncethat’sdoneyoucanbegincopyingfilesin andmakingchanges.Before
you can commit any files, you must notify Mercurial that they should be
trackedusing the
hg add
command:
> hg add MyAddon.toc
> hg add MyAddon.lua
Youcan checkthestatus ofthe repositoryusingthe
hg status
command:
> hg status
A MyAddon.lua
A MyAddon.toc
Here the status shows thattwo new files are waiting to be added. Youcan
actually performa commit using the
hg commit
command (there isno output
unless thereisan issue):
> hg commit -m “Adding empty files for MyAddon“
This specifies the log message using the
-m
option, but you could just as
easily leave that offand Mercurial will open a texteditor foryouto inputthe
logmessage.
Althoughthiscommandmadea committothelocalrepository,thereisstill
nothing on the remote repositoryat Curseforge. To fixthis,youcan push the
currentrepository upto the remotelocation by using the
hg push
command,
specifyingtheremoteaddresstowhich youwanttopush:
> hg push ssh://hg@hg.curseforge.net/wow/myproject/mainline.git
pushing to ssh://hg@hg.curseforge.net/wow/myproject/mainline
searching for changes
1348 Part V
Appendixes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 2 changes to 2 files
Now you tell Mercurial that you want to push the master branch to the
remote location specified. You will be prompted for your authentication
information (this depends entirely on what host you are pushing to) and the
masterbranch iscreatedon theremoterepository.
Inthefutureyoucan pushnewchangessimplybyrunning:
> hg push git@git.curseforge.net:wow/myproject/mainline.git
If you are working collaboratively in the project,you can also retrieveany
newchangesbyrunning a
hg pull
command:
> hg pull git@git.curseforge.net:wow/myproject/mainline.git
Documents you may be interested
Documents you may be interested