c# pdf reader free : Delete pages in pdf Library application component .net windows asp.net mvc spluspackages7-part283

GUI Example
63
DialogControl="String", 
DefaultValue="last.lmFit",
UseQuotes = T)
guiCreate("Property",
Name="lmFitExampleSaveFitGroup",
Type = "Group", 
DialogPrompt = "Save Fit", 
PropertyList = paste("lmFitExampleSaveAs") )
Comments: 
• The last two properties specify the saved object, including the 
actual name and a group structure to contain it.
• The 
SaveAs
property uses a 
String
text box where the user 
can  type the name of the object for saving the result. It 
defaults to 
“last.lmFit”
and returns a quoted string.
• The 
Group
property contains the 
SaveAs
property in a visible 
frame to separate it from the rest of the properties on the 
dialog.
Creating the 
FunctionInfo 
Object
The 
FunctionInfo
object contains four critical pieces of information:
• The name of the calling function (
Function
), or the 
menu
function.
• The name of the callback function (
CallBackFunction
).
• The list of properties (
PropertyList
) in the order to be 
displayed in the dialog.
• The list of properties arranged in the exact order of the 
arguments in the calling function (
ArgumentList
).
### FunctionInfo Object  ###
guiCreate("FunctionInfo", 
Name = "menuLmFit",
Function = "menuLmFit",
CallBackFunction = "backLmFit",
DialogHeader = "Fit Linear Model",
StatusString = "Fits multi-variable linear model",
PropertyList = 
paste(c("SPropInvisibleReturnObject",
Delete pages in pdf - remove PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Provides Users with Mature Document Manipulating Function for Deleting PDF Pages
add and delete pages from pdf; delete pages from pdf file online
Delete pages in pdf - VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Visual Basic Sample Codes to Delete PDF Document Page in .NET
delete pages from pdf reader; delete pdf pages in reader
Chapter 2  Adding A GUI To a Windows
®
Package
64
"lmFitExampleDataGroup", 
"lmFitExampleOptionsGroup",
"lmFitExampleSaveFitGroup"),
collapse = ", "), 
ArgumentList <- 
paste(c("#0=SPropInvisibleReturnObject",
"#1=lmFitExampleX", 
"#2=lmFitExampleY",  
"#3=lmFitExampleDataSet",  
"#4=lmFitExampleMethod",
"#5=lmFitExampleRemoveNAs",
"#6=lmFitExampleSaveAs"), 
collapse = ", "),
WriteArgNames = T)
Comments:
• The 
FunctionInfo
object 
Name
must match the name of the 
function.
• The 
DialogHeader
string specifies the title of the dialog.
• The 
WriteArgNames = T
argument indicates that the argument 
names are written into the function call, which makes 
deciphering the call resulting from OK or Apply much 
easier. 
• The 
SPropInvisibleReturnObject
property is in an internal 
property that preserves space for a return object. 
Creating the 
Callback 
Function
The callback function dynamically controls property content. It is 
used for filling drop-down lists with dynamic content (for example, 
variable names), for enabling or disabling controls, and for changing 
defaults depending on user selection. Also, it can be used to pop up 
message boxes based on user selections. 
With every user interaction with a dialog, some information changes. 
That information, and all of the information contained in the dialog, 
is available in the form of a data frame that is passed to the callback 
function associated with the dialog. The callback function is designed 
to take the property data frame as its only argument and return the 
property data frame when it completes. Any changed values are 
reflected in the dialog. The callback function is called with every 
interaction with the dialog.
C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
C# view PDF online, C# convert PDF to tiff, C# read PDF, C# convert PDF to text, C# extract PDF pages, C# comment annotate PDF, C# delete PDF pages, C# convert
delete blank page in pdf online; copy pages from pdf to new pdf
C# PDF Page Insert Library: insert pages into PDF file in C#.net
how to merge PDF document files by C# code, how to rotate PDF document page, how to delete PDF page using C# .NET, how to reorganize PDF document pages and how
delete page on pdf reader; delete page from pdf document
GUI Example
65
The property data frame contains a row for each control property 
and the following columns: 
message
- Message codes indicating, for example, dialog 
initialization, clicking of OK or Apply, dialog rollback.
value
- The value contained in the property.
enable
T
or 
F
depending on whether the property is enabled.
optionList
- the values in a 
List Box
or 
Combo Box
.
prompt
- The controls label.
The callback function for our 
lmFitExample
dialog is listed below. 
(Comments are displayed below the code listing. )
backLmFit <- function(data){
initialmsg <- cbIsInitDialogMessage(data)
activeprop <- cbGetActiveProp(data)
## actions based on initializing the dialog
if(initialmsg){
data <- cbSetOptionList(data, "lmFitExampleDataSet",
paste(objects(class = "data.frame"), 
collapse = ", "))
}
## actions based on selecting the data set
if(activeprop == "lmFitExampleDataSet"){
if(exists(cbGetCurrValue(data,  
"lmFitExampleDataSet"))){
data <- cbSetOptionList(data, "lmFitExampleY", 
paste(colIds(get(cbGetCurrValue(data, 
"lmFitExampleDataSet"))), 
collapse = ","))
data <- cbSetOptionList(data, "lmFitExampleX", 
paste(colIds(get(cbGetCurrValue(data,
"lmFitExampleDataSet"))), 
collapse = ","))
} else {
guiDisplayMessageBox(paste(cbGetCurrValue(data,     
"lmFitExampleDataSet"), 
"does not exist. Please enter another data set."),
button = c("Ok"),
icon = c("error"))
}
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
Page: Insert PDF Pages. |. Home ›› XDoc.PDF ›› VB.NET PDF: Insert PDF Page. Add and Insert Multiple PDF Pages to PDF Document Using VB.
delete pages pdf online; copy page from pdf
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
C:\test1.pdf") Dim pdf2 As PDFDocument = New PDFDocument("C:\test2.pdf") Dim pageindexes = New Integer() {1, 2, 4} Dim pages = pdf.DuplicatePage(pageindexes
delete page on pdf; pdf delete page
Chapter 2  Adding A GUI To a Windows
®
Package
66
}
data
}
Comments: 
• The function starts by saving two objects: 
initialmsg
and 
activeprop
. The 
initialmsg
value is 
T
if the dialog is being 
initialized (that is, just opening). 
activeprop
contains the 
property name of the property being modified. You use both 
initialmsg
and 
activeprop
to create conditional expressions.
• The first conditional expression depends on whether the 
dialog is being initialized. If it is, then the 
lmFitExampleDataSet
property is filled with the names of all 
data frames in search list position one. Note that those names 
must be in a single string with values separated by commas. 
• The second conditional expression checks to see if the active 
property is 
lmFitExampleDataSet
. If it is, and if the data frame 
exists, both 
lmFitExampleY
and 
lmFitExampleX 
are filled with 
the column IDs of the data frame, so the user can select the 
dependent and independent variables for the regression. If a 
data frame does not exist with the provided name, a message 
box is displayed indicating that the user must provide another 
data set name.
• The property 
data frame
is returned and the dialog is 
updated, depending on changes made. All of this happens 
with each interaction with the dialog, so it is important to 
write the callback function efficiently so responsiveness is not 
compromised.
Loading the 
GUI at Startup
When the library section is attached, typically you can load the 
custom GUI  with a 
.First.lib
function. Assuming the menu and 
callback functions are saved in the library, the menu is loaded first, 
and the properties are loaded second. The order is important: 
functions, then menu, and then properties. The functions must exist 
so the properties (the menu items and 
FunctionInfo
objects) that 
refer to them can find them when they are loaded into the Spotfire S+ 
GUI.
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
C#.NET PDF Library - Copy and Paste PDF Pages in C#.NET. Easy to C#.NET Sample Code: Copy and Paste PDF Pages Using C#.NET. C# programming
add and delete pages in pdf; delete pdf pages ipad
VB.NET PDF delete text library: delete, remove text from PDF file
VB.NET PDF - How to Delete Text from PDF File in VB.NET. VB.NET Programming Guide to Delete Text from PDF File Using XDoc.PDF SDK for VB.NET.
delete page from pdf reader; best pdf editor delete pages
GUI Example
67
If the GUI is built as part of a package, the 
.First.lib
function must 
have a particular form. The package build process looks for a certain 
directory structure, pulls the GUI property file from that structure, 
and installs the properties in the .Prefs directory for the installed 
package. The functions defined in swingui/R are installed in the 
package .Data directory.
.First.lib <- function(library, section){
loadLmFitMenu()
package.path <- file.path(library, section)
prop.path <- file.path(package.path, 
".Prefs""package.prp")
info.path <- file.path(package.path, 
".Prefs""package.fni")
guiLoadDefaultObjects("Property"
FileName = prop.path)
guiLoadDefaultObjects("FunctionInfo"
FileName = info.path)
}
Comments:
• The menu loads first, followed by the controls properties, and  
then the 
FunctionInfo
object.
• The paths to the properties and 
FunctionInfo
objects are 
fixed, relative to the package name. The properties are always  
saved in a file named package.prp and stored in the .Prefs 
directory for the package. The 
FunctionInfo
objects are 
always saved in a file named package.fni and stored in the 
.Prefs directory. 
Removing the 
Menu at 
Shutdown
To finish the GUI specification, you need a 
.Last.lib
function, 
which removes the new menu structure when the library is detached. 
(It does not make sense to leave the menu in place if the functions in 
the package are not available to the session.) 
.Last.lib = function(library, section, .data, where){
if (is.sgui.app() && interactive() &&     
is.element("SPlusMenuBar$MyGUI", 
guiGetObjectNames("MenuItem"))){
guiRemove("MenuItem", 
Name="SPlusMenuBar$MyGUI") }
C# Word - Delete Word Document Page in C#.NET
doc.Save(outPutFilePath); Delete Consecutive Pages from Word in C#. int[] detelePageindexes = new int[] { 1, 3, 5, 7, 9 }; // Delete pages.
delete pages on pdf; delete blank page from pdf
C# PDF metadata Library: add, remove, update PDF metadata in C#.
Allow C# Developers to Read, Add, Edit, Update and Delete PDF Metadata in .NET Project. Remove and delete metadata from PDF file.
delete page in pdf file; delete page from pdf acrobat
Chapter 2  Adding A GUI To a Windows
®
Package
68
}
Comment: 
• The function is written to test whether the MyGUI menu is 
loaded. If so, the function removes the menu.
The Resulting 
Dialog
Figure 2.1 displays the resulting dialog after the menu and all the 
properties are loaded into Spotfire S+.
Figure 2.1: The resulting dialog created in the previous sections.
Extending The Example
69
EXTENDING THE EXAMPLE
At this point, the implementation of 
lmFitExample
is minimal, 
because it prints and plots nothing. Also, the call component of the 
resulting fit shows the model formula incorrectly. The example can 
be improved with a little more work: adding a second page to the 
dialog specifying output options, and fixing the saved call by 
constructing the formula. To accomplish these steps: 
• Modify the menu function, 
menuLmFit
(and therefore the 
FunctionInfo
object) to take additional arguments. 
• Add sufficient properties to specify the output via simple 
check boxes on a new page. 
Additional 
Properties
Create two checkboxes: one for printing the summary of the fit, and 
one for plotting the diagnostics for the fit. (Group them for style.)
guiCreate("Property",
Name="lmFitExamplePrintSummary",
DialogPrompt="Print Summary", 
Type = "Normal", 
DialogControl="Check Box",
DefaultValue = T, 
UseQuotes=F)
guiCreate("Property",
Name="lmFitExamplePlotDiagnostics",
DialogPrompt="Plot Diagnostics", 
Type = "Normal", 
DialogControl="Check Box",
DefaultValue = T, 
UseQuotes=F)
guiCreate("Property",
Name="lmFitExampleOutputGroup",
Type = "Group", 
DialogPrompt = "Display Options", 
PropertyList = paste("lmFitExamplePrintSummary",
"lmFitExamplePlotDiagnostics",
collapse = ",") )
Chapter 2  Adding A GUI To a Windows
®
Package
70
The additonal properties do not need to be grouped, but grouping 
makes the second page more orderly. 
Dialog Pages
Create the pages by creating new 
Page
properties for each page of the 
dialog.  The groups have been created already, so the pages are just 
containers for the groups. 
guiCreate("Property",
Name="lmFitExampleMainPage",
Type = "Page", 
DialogPrompt = "Data/Methods", 
PropertyList = paste(c("lmFitExampleDataGroup", 
"lmFitExampleOptionsGroup",
"lmFitExampleSaveFitGroup"),
collapse = ","))
guiCreate("Property",
Name="lmFitExampleOutputPage",
Type = "Page", 
DialogPrompt = "Output",
PropertyList = "lmFitExampleOutputGroup")
Updating the 
Menu Funcion
The menu function has two additonal arguments: 
printSummary
and 
plotDiagnostics
, which support the two new features and handle   
the formula more carefully so it appears properly in the saved call. 
menuLmFit<-function(x, 
y, 
data,
method = "qr", 
removeNA = T, 
printSummary = T, 
plotDiagnostics = T,
saveAs = "last.lmFit")
{
# Make x and y a formula
x <- unlist(unpaste(x, sep = ","))
Args <- list(formula = 
formula(parse(text = 
paste(y, 
paste(x, collapse = " + "), 
Extending The Example
71
sep = " ~ ")))@.Data,
data = as.name(substitute(data)),
method = method)
# fit model conditional on removal of NAs
if(removeNA)
Args$na.action = as.name("na.exclude")
fit <- do.call("lm", Args)
# save result
assign(saveAs, fit, where = 1)
# print results
if(printSummary)
print(summary(fit))
# plot diagnostics
if(plotDiagnostics)
plot(fit)
# return result invisibly
invisible(fit)
}
Comments: 
• The two additional arguments, 
printSummary
and 
plotDiagnostics
, are straightforward. They take logical 
values, and the code at the bottom of the function prints a 
summary of the fit or plots the fit if they are 
T
.
• The greatest complication lies in handling the formula 
correctly. To do so requires constructing the arguments to 
lm
as a named list, and then calling 
lm 
using the 
do.call
function. The 
do.call
function takes the name of the function 
as a character string and a list with the evaluated arguments. 
Updating the 
FunctionInfo 
Object
Finally, update the 
FunctionInfo
object to implement the 
Page
grouping and the new function arguments. 
guiCreate("FunctionInfo", 
Name = "menuLmFit",
Function = "menuLmFit",
Chapter 2  Adding A GUI To a Windows
®
Package
72
CallBackFunction = "backLmFit",
DialogHeader = "Fit Linear Model",
StatusString = "Fits multi-variable linear model",
PropertyList = 
paste(c( "SPropInvisibleReturnObject",
"lmFitExampleMainPage",
"lmFitExampleOutputPage"),
collapse = ", "), 
ArgumentList = 
paste(c("#0=SPropInvisibleReturnObject",
"#1=lmFitExampleX", 
"#2=lmFitExampleY",  
"#3=lmFitExampleDataSet",  
"#4=lmFitExampleMethod",
"#5=lmFitExampleRemoveNAs",
"#6=lmFitExamplePrintSummary",
"#7=lmFitExamplePlotDiagnostics",
"#8=lmFitExampleSaveAs"), 
collapse = ", "),
WriteArgNames = T
)
Comments:
• The 
PropertyList
now contains only the 
Page
grouping 
properties, because all the groups are contained in the pages. 
• The two additional arguments are added to the 
ArgumentList
just ahead of 
SaveAs
.
Documents you may be interested
Documents you may be interested