c# wpf free pdf viewer : Copy one page of pdf to another pdf control application system azure web page .net console 258-20080-part225

Paper 258-2008 
Creating That Perfect Data Grid Using the SAS
® 
Output Delivery System 
Chevell Parker, SAS Institute Inc., Cary, NC 
ABSTRACT 
Using the SAS Output Delivery System (ODS), you can create that perfect data grid with functionality that resembles 
.NET files or Microsoft Excel applications. Using ODS tagset options or dialog boxes, the data grid dynamically sorts, 
filters, freezes rows and columns, creates tables and panels, hides columns, applies styles, applies alternating row 
and columns barriers, and saves data to various formats. Microsoft Office applications also include other 
functionality such as sending tables from a Web page to individual sheets within a Microsoft Excel workbook, 
modifying column widths, modifying orientation, adding headers and footers, rotating headers, adding graphics, 
updating existing worksheets with tables, saving table as native excel files, creating pivot tables, applying Excel 
formats, and creating Microsoft PowerPoint slides with tables. 
INTRODUCTION  
data grid, as defined in this document, is simply one or more tables of data that are generated with a SAS 
procedure or with the DATA step. The following sections illustrate ways you can make your tables, or grids, of data 
more useful by using options to do the following: 
enhance the presentation or readability. 
maximize the ability to analyze and manipulate your data 
generate useful reports with limited effort and knowledge of the TEMPLATE procedure and the SAS Output 
Delivery System (ODS).   
Most of the examples in this paper use the TableEditor tagset (or, destination) to enhance the functionality of the 
data grid. Tagsets consist of events (such as System_Title, Header, Data, System_Footer, and others) that are 
triggered in a particular order based on a SAS procedure or DATA step. The TableEditor tagset inherits from the 
HTML4 tagset that is used by the HTML destination.  
Note: To download the TableEditor, see the link in the section Resources. The download file contains a readme file 
with instructions on how to download the TableEditor. This file also includes all the options that can be used with the 
TableEditor. 
The TableEditor tagset is not a replacement for current methods of generating styles (such as style templates) using 
ODS. Instead, you can use the tagset in conjunction with current methods to create styles and enhancements for 
your data grid. The TableEditor also enables you to generate reports using a common set of options across all 
procedures. Regardless of whether a procedure (such as the PRINT, REPORT, or TABULATE procedures) supports 
style overrides, you can modify the grid by selecting options of the tagset’s parameters in the procedure options.  
Much of the functionality generated by the data grid examples that are discussed in this paper is mainly reserved for 
use in applications such as .NET, Java, or Excel. However, the functionality that the grid generates is created by 
using the ODS Markup Language, cascading style sheets (CSS), and scripting. Much of the output generated by the 
data grid is for the Web, and this type of output is supported in the Microsoft Internet Explorer browser.   
ODS MARKUP LANGUAGE 
ODS Markup Language gives you the ability to modify tagset events in ways that range from modifying a tag to 
changing the order in which events are triggered, and even to preventing an event from being triggered at all.  A 
good tool for modifying tagsets is the EVENT_MAP tagset. EVENT_MAP is a diagnostic tagset that displays the flow 
of the procedure or the DATA step to include how the events are triggered with all of the metadata. You can use the 
information produced by this diagnostic tagset to modify and generate other tagsets. The EVENT_MAP tagset was 
used heavily in the creation of the TableEditor tagset.    
The examples presented in this paper were created with ODS Markup Language. ODS Markup Language provides 
the ability to access and modify all of the data and the metadata that generated from a procedure or a DATA step.  
Based on this information, you can decide how the output should be generated. In SAS
®
9.1, DATA step functions 
that enable you to generate any type of output that you want to produce were added to the ODS Markup Language: 
for example, ExcelXP, CSV, LaTex, HTML, various types of XML, and other formats were generated at SAS with the 
ODS Markup Language. 
Reporting and Information Visualization
n
SAS Global Forum 2008
08
8
Copy one page of pdf to another pdf - copy, paste, cut PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Easy to Use C# Code to Extract PDF Pages, Copy Pages from One PDF File and Paste into Others
add or remove pages from pdf; extract pages from pdf document
Copy one page of pdf to another pdf - VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Detailed VB.NET Guide for Extracting Pages from Microsoft PDF Doc
delete page from pdf acrobat; extract page from pdf document
USING STYLES TO ENHANCE YOUR DATA GRID             
You can use ODS to modify styles and enhance your data grid in a variety of ways. For example, one way is to use 
style templates, which are created by the TEMPLATE procedure. Style templates consist of style elements, which 
modify the overall appearance of output that is generated with ODS. A style element is made up of style attributes 
that modify the behavior of the style element or some part of the output (such as the color or font). PROC 
TEMPLATE provides various types of templates (such as style, tagset, table, and statgraph templates) that you can 
apply to data grids. All of these templates are stored in an item store  (which is a member of a SAS library). You can 
find detailed information about these style elements and attributes in SAS OnlineDoc 9.1.3 
(support.sas.com/onlinedoc/913/docMainpage.jsp) and other SAS documentation.   
In addition to using PROC TEMPLATE, you can create styles using other methods, such as cascading style sheets 
for markup output and style overrides for procedures that support style overrides.  
When you are ready to modify a grid, you need to determine what style elements and attributes you want to modify.  
To do that, you need to know what particular elements and attributes are associated with the output. You can 
dynamically determine the style elements and attributes that are associated with output by using the diagnostic 
tagset Style_Popup.  Click on any item on the page to display a pop-up window with the style element currently 
being used along with the attributes specified for the element, as shown in Display 1. You can also mouse over items 
of the page to see the element names.  The following example illustrates how to use the Style_Popup as a 
diagnostic tagset:  
ods tagsets.style_popup file=’temp.html’; 
proc print data=sashelp.class; 
title “Tagset Style_Popup”; 
run; 
ods tagsets.style_popup close; 
Display 1.  Determining Style Elements and Attributes Using the Style_Popup Tagset 
GENERATING STYLES WITH THE 
TableEditor 
TAGSET (DESTINATION) 
After you determine which style elements and attributes you want to modify, you can easily modify them using 
options in the TableEditor tagset. This method is an easy approach to creating styles for Web pages because the 
only thing you need to provide is the value of the option. Specifying options to the tagsets enables you to modify 
various parts of the output.  To generate the perfect data grid, the data needs to stand out in a way that shows the 
meaning behind the data. People often achieve this effect with graphics. However, you can do an effective job using 
just data and styles, such as the Styles.Mystyles template, which is provided by default when you download the 
TableEditor tagset.  
This style provides a similar appearance to Windows applications as shown in Display 4 . Regardless of the style that 
you decide to use, you can modify or override the chosen styles using options.  You can make modifications using 
style overrides in some SAS procedures, CSS or with PROC TEMPLATE, as mentioned previously. This method 
(overriding the style by modifying the options) does not require any knowledge of ODS to generate some very 
aesthetic and useful reports. You can also use this method in conjunction with the other methods of style generation, 
as well.  
Reporting and Information Visualization
SAS Global Forum 2008
08
8
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
C# developers can easily merge and append one PDF document to document imaging toolkit, also offers other advanced PDF document page processing and
delete page from pdf file online; cut pages from pdf file
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
This guiding page will help you merge two or more PDF documents into a single one in a Visual Basic .NET imaging application.
delete page from pdf preview; copy one page of pdf
Creating Styles by Modifying Options 
In the following example code, the default style for a data grid is changed by modifying options. The title size is 
changed, and colors are changed for the header, row headers, page background, foreground, grid line, and scroll 
bar. Display 2 shows the new output with the modifications.   
ods tagsets.tableeditor     
file="temp6.html"  
options(header_bgcolor="black"               
header_fgcolor="tan"                 
rowheader_bgcolor=”black”                            
rowheader_fgcolor="tan" 
data_bgcolor="beige" 
gridline_color="black" 
background_color="tan" 
scrollbar_color="black" 
title_size="20pt" ); 
proc print data=sashelp.class; 
title c=black "Adding Styles"; 
run; 
ods tagsets.tableeditor close;
Highlighting a Row with Color 
The next example shows how to enhance the data grid by applying the Styles.Mystyle template, which is installed 
with the tagset. If you use Styles.Mystyle, or any other style that does not have a background color, you can include 
the HIGHLIGHT_COLOR= option to highlight a row in a specified color when you move your mouse over the row, as 
shown here in Display 3. 
ods tagsets.tableeditor    
file="temp6.html" 
style=mystyle 
options(highlight_color="pink" 
scrollbar_color="beige" 
title_style="normal" ); 
proc print data=sashelp.class; 
title "Mouseover colors"; 
run; 
ods tagsets.tableeditor close; 
ACCENTUATING DATA BY ALTERNATING COLORS 
Another way to accentuate your data and make the data grid more readable is to use alternating colors for rows and 
columns. You can apply alternating colors in a numbers of ways. For example,  you can incorporate a table template 
that uses the CELLSTYLE statement or use a CALL DEFINE statement in PROC REPORT. You can also create this 
same effect using options in TableEditor, regardless of the procedure that is used.  
Alternating Column Colors 
The following example illustrates how to make data grid columns more visible by using alternating column colors that 
are created with the COL_COLOR_EVEN= and COL_COLOR_ODD= options.  As shown in Display 4, this example 
uses other options, such as ROWHEADER_BGCOLOR= and GRIDLINES=, to create other color effects.  
Display 2.  Creating Styles by Modifying Options 
Display 3.  Highlighting a Row with Color  
Highlight 
color
Row 
Header
Title 
Background 
Header 
Data 
Reporting and Information Visualization
SAS Global Forum 2008
08
8
VB.NET PDF copy, paste image library: copy, paste, cut PDF images
VB.NET: Copy and Paste Image in PDF Page. This VB.NET example shows how to copy an image from one page of PDF document and paste it into another page.
cut and paste pdf pages; extract pages pdf preview
C# PDF copy, paste image Library: copy, paste, cut PDF images in
This C#.NET example describes how to copy an image from one page of PDF document and paste it into another page. // Define input and output documents.
deleting pages from pdf online; delete blank pages from pdf file
ods tagsets.tableeditor 
file=”temp.html” 
options(rowheader_bgcolor=”green” 
background_color=”white” 
rowheader_fgcolor=”white” 
header_bgcolor=”#b0b0b0” 
header_fgcolor=”green” 
data_bgcolor=”#b0b0b0” 
col_color_even=”#e0e0e0” 
col_color_odd=”white” 
gridlines=”cols”); 
proc print data=sashelp.class; 
title “Alternating column colors”; 
run  ods _all_ close;                        
Alternating Row Colors 
The next example demonstrates how to modify the background colors for the data rows using the 
BANNER_COLOR_EVEN= and the BANNER_COLOR_ODD= options to create alternating row colors. You can also 
change the foreground colors by using the FBANNER_COLOR_EVEN= and the FBANNER_COLOR_ODD= options. 
ods tagsets.tableeditor 
file=”temp.html” 
options(header_bgcolor=”darkblue” 
header_fcolor=”white” 
rowheader_bgcolor=”lightblue” 
banner_color_even=”white” 
banner_color_odd=”#eeeeee” 
gridlines=”no”); 
proc print data=sashelp.class; 
title “Alternating column colors”; 
run; 
ods_all_close; 
Alternating Foreground Banner Colors  
Display 6 generates alternating foreground banner colors and modification of other colors.
ods tagsets.tableeditor file=”temp.html” 
options(fbanner_color_even=”white” 
fbanner_color_odd=”yellow” 
background_color=”black” 
header_bgcolor=”black” 
header_fgcolor=”orange” 
data_bgcolor=”black” 
gridline_color=”red”);        
                                            
proc report data=sashelp.class nowd; 
title c=orange “Alternating row        
colors”; 
run; 
ods _all_ close; 
Display 4.  Alternating Column Colors 
Display 5.  Alternating Row Colors 
Display 6.  Alternating Foreground Colors   
Reporting and Information Visualization
SAS Global Forum 2008
08
8
C# PDF Page Rotate Library: rotate PDF page permanently in C#.net
Imaging.Basic' or any other assembly or one of its Use C#.NET Demo Code to Rotate a PDF Page Using C# Copy this demo code to your C# application to rotate the
combine pages of pdf documents into one; acrobat extract pages from pdf
C# PDF Page Replace Library: replace PDF pages in C#.net, ASP.NET
Could not load file or assembly 'RasterEdge.Imaging.Basic' or any other assembly or one of its You can replace a PDF page with another PDF page from other
acrobat remove pages from pdf; copy one page of pdf to another pdf
ALTERNATING FOREGROUND, BACKGROUND AND COLUMN COLORS 
This example creates a table that uses a combination of alternating foreground and background colors as well as 
alternating column colors. 
ods tagsets.tableeditor file=”temp.html” 
options(col_color_odd=”pink” 
col_color_even=”purple” 
banner_color_odd=”gold” 
fbanner_color_even=”red” 
fbanner_color_odd=”green” 
header_bgcolor=”red” 
header_fgcolor=”white” 
background_color=”white”); 
proc print data=sashelp.orsales noobs; 
title c=gold “Alternating colors”; 
run; 
ods _all_ close; 
IMAGES AND CAPTIONS 
You can also use Images and captions to enhance your data grid. Images are used, in particular, as a signature or a 
logo on a page. You can add images in various ways, including with ODS modifying styles and with tagset options. 
Captions are also useful for enhancing your data table, enabling you to provide descriptive elements to parts of the 
table. Such descriptions might include a date, information about the table, or a simple explanation. 
Adding an Image and a Caption 
This example uses the IMAGE_PATH= option in the TableEditor tagset to add an image as a logo. The example also 
uses the IMAGE_JUST= option, the CAPTION_TEXT= option, and the CAPTION_BACKGROUND= option. You 
specify your caption text in the CAPTION_TEXT= option. In this example, the caption, Table info, appears in a 
banner above the table.  
Note: If you have multiple captions, you must separate each caption string with a comma in the CAPTION_TEXT= 
option.  
The CAPTION_BACKGROUND= option enables you to modify the color of the caption background.  You can also 
modify the captions with the CAPTION_BGCOLOR=, CAPTION_FGCOLOR=, CAPTION_FONT=, and 
CAPTION_JUST=  and the BACKGROUND_IMAGE= options. 
ods tagsets.tableeditor file="temp.html"     
options(background_color="white"          
image_path="c:\temp\title08.jpg"   
image_just="center"                        
header_bgcolor="red"                       
header_fgcolor="white"                                          
banner_color_even="orange" 
banner_color_odd=”white”                  
caption_text="Table info"                    
caption_background="orange"); 
proc print data=sashelp.class(obs=15) noobs;   
run; 
ods tagsets.tableeditor close; 
Display 7.  Alternating Foreground, Background, and 
Column Colors 
Display 8.  Adding an Image and a Caption 
Reporting and Information Visualization
SAS Global Forum 2008
08
8
VB.NET PDF Converter Library SDK to convert PDF to other file
One is to convert and render selected PDF pages or files to This tutorial page offers you a piece of vb.net demo You may directly copy and paste it into your vb
deleting pages from pdf in preview; extract one page from pdf online
C# PowerPoint - Merge PowerPoint Documents in C#.NET
can easily merge and append one PowerPoint document to another PowerPoint document also offers other advanced PowerPoint document page processing and
export pages from pdf online; delete pages from pdf online
Adding an Image as a Background 
This example includes a logo image, but it also adds a separate image as the background for the page. 
ods tagsets tagsets.tableeditor  
file=”temp.html” 
options(background_image=”c.\sas.gif” 
image_path=”c:\temp\title08.jpg” 
header_bgcolor=”royalblue” 
header_fgcolor=”white” 
banner_color_odd=”white” 
banner_color_even=”lightblue” 
caption_text=”&sysdate” 
caption_just=”left”); 
proc print data=sashelp.class(obs=15) noobs; 
run; 
ods tagsets.tableeditor.close; 
DYNAMIC STYLES 
Styles can be generated that give you the ability to 
dynamically modify the presentation of your data. To generate dynamic styles, you specify the TableEditor tagset’s 
STYLE_SWITCH= option. This option generates an options list on your Web page from which you can choose and 
load different styles (CSS files). To load the CSS files, you use the same method that is used with the ODS HTML 
destination; that is, the URL= option within the STYLESHEET= option. You specify existing CSS files in the URL= 
option.  
You can create CSS files (with a .css extension) that are comparable to SAS template files by using 
STYLESHEET=”filename.css” along with the SAS template name in the STYLE= option.   
Note: If you have SAS
®
Enterprise Guide
®
installed, you will have a .css file comparable to the template styles (in 
the SASHELP location) that are shipped with the SAS
®
System.  
Creating a CSS File from a Single Template Style 
The following example illustrates how to use the STYLESHEET= option to create a CSS file from a single template 
style.  In this example, the first ODS statement uses the STYLESHEET= option to create the .css file. Later in the 
program, a macro is included that reads all of the SAS template styles and queries the DICTIONARY.STYLES table 
in order to convert the template styles to .css files. Once the files are converted, they can be included in the URL= 
option within the STYLESHEET= option in the ODS statement that appears before the PROC PRINT statement.  
ods html stylesheet=”c:\temp\sasweb.css”  style=styles.sasweb; 
/* CSS setup */                                                                               
options mprint sgen;                                                                             
proc sql;                                                                                        
select scan(style,2,".") into:temp separated by " "                                            
from dictionary.styles;                                                                 
run;                                                                                              
quit;                                                       
%macro test(path=c:\temp);                                                                       
%let x=1;                                                                                        
%do %while(%scan(&temp,&x," ") ne);                                                              
%let tmp=%scan(&temp,&x," ");  
ods html stylesheet="&path\&tmp..css" style=styles.%scan(&tmp,1,".");                             
%let x=%eval(&x+1);                                                                              
%end;                                                                                            
%mend;                                                                                           
%test()                                                                                           
Display 9.  Adding an Image as a Background 
Reporting and Information Visualization
SAS Global Forum 2008
08
8
ods tagsets.tableeditor path="c:\temp\" file="temp.html"  
options( style_switch="yes")  
stylesheet=(url="default.css analysis.css astronomy.css meadow.css           
sasweb.css statistical.css") ; 
proc print data=sashelp.class; 
title "Dynamic style switch"; 
run; 
ods tagsets.tableeditor close; 
HIGHLIGHTING DATA 
One of the jobs of a good data grid is to enable you to get the most information from the data and effectively analyze 
it. When data is not in a format that can be easily used, that is when graphs are usually added or data is exported to 
other applications. You can enhance your data grid in a number of ways that facilitate effective presentation and 
analysis. This section explains some of these ways to enhance your data grid, including the following: 
scaling tables 
adding Web tabs  
adding filters 
sorting data 
positioning data 
modifying columns 
adding check buttons to highlight data 
SCALING TABLES 
In certain situations, you might need to scale your table. You can scale tables using the following options: 
ZOOM= option— scales the overall output according to the value of the argument that you use. This type of 
scaling is helpful when you need to reduce the size of your table in order to keep all of your data in a 
viewable area of the browser.  
ZOOM_TABLE= option— enables you to specify the size of individual tables. In the option syntax, you must 
separate the values with commas. 
ZOOM_TOGGLE= option— enables you to control the zooming feature interactively.  
Display 10.  Using Dynamic Styles to Enhance Your Data Presentation 
Reporting and Information Visualization
SAS Global Forum 2008
08
8
The following program uses the ZOOM_TABLE= and the ZOOM_TOGGLE= options to scale two tables.
ods tagsets.tableeditor file=”filename.html” options(zoom_table=”60%,80%” 
zoom_toggle=”yes” 
background_color=”white”); 
proc print data=sashelp.orsales(obs=3); 
title “Table zoomed at 60%”; 
run; 
proc print data=sashelp.orsales(obs=3); 
title “Table zoomed at 80%”; 
run;  
ods tagsets.tableeditor close; 
Display 11.  Scaling Tables Using Zoom Options 
ADDING WEB TABS 
Web tabs enable you to display a single graph or table by selecting its respective tab. You use the WEB_TABS= 
option to generate tabs. Multiple tabs in the WEB_TABS= option must be separated by commas. While they look 
similar to worksheets you would see in Microsoft Excel, these sheets are actually generated in Base SAS
®
software. 
This is also a good way to print the information in the tab that you are interested in. 
The following example illustrates how to create Web tabs with the WEB_TABS= option. 
ods tagsets.tableeditor file=”filename.html”    
options(web_tabs=”Means,Gchart,Freq,Report”) 
style=statistical;   
proc means data=sashelp.class; 
run;  
proc gchart data=sashelp.class; 
vbar age; 
run; 
quit; 
proc freq data=sashelp.class; 
run; 
proc report data=sashelp.orsales nowd; 
run; 
ods tagsets.tableeditor close; 
Reporting and Information Visualization
SAS Global Forum 2008
08
8
   Display 12.  Adding Web Tabs to Your Data Grid 
SORTING 
Another key to an effective data grid is having the ability to view and analyze the data in several ways without having 
to resubmit the code. The TableEditor destination enables you to do just that—you can dynamically sort table 
columns by clicking on the column headers. By specifying the SORT= option, you can obtain several views of the 
data without leaving the page. You can sort on five different data types:  
String— used for character data. 
Number— used for numbers that are integers and real numbers. 
Numberx (Number Extended)used for numbers that contain a comma or a dollar sign 
Date— used with the DATE9., MONNY., and MMYYDD. date formats. 
None— prevents the columns from being sorted. 
These data types are handled automatically (with the exception of the SAS 9.1 REPORT procedure). To override the 
default data types or to add a data type in SAS 9.1 PROC REPORT, use the DATA_TYPE= option. This option 
specifies or overrides the data types of the columns. Each data type must be separated by a comma. Note: You can 
also set a column’s data type using the TAGATTR= style attribute with the appropriate data type for the column.  To 
determine the default data types for a column, use the DESCRIBE= option. This option displays a red diamond in 
columns that are of type Number or Numberx, a blue circle for columns of type String, and an hourglass for columns 
of type Date.  
Determining Column Data Types and Sorting the Columns 
The following program uses the SORT= and DESCRIBE= options to sort table columns and to display icons that 
denote the data type for each column. 
ods tagsets.tableeditor  file="filename.html" style=sasweb2 
options(sort="yes" sort_arrow_color="brown" describe="yes" 
data_type="Number,Number,String,String,String,Number,Number,Number" 
banner_color_even="beige"); 
proc report data=sashelp.orsales(obs=10) nowd; 
title "Sorting data"; 
define year / display; 
rbreak after / summarize;  
run; 
ods tagsets.tableeditor close; 
Reporting and Information Visualization
SAS Global Forum 2008
08
8
10 
Display 13.  Using the DESCRIBE= Option to Determine Column Data Types and the SORT= Option to Sort Columns
Adding Images, Underlining, and Color to Sorted Columns 
When you specify the SORT= option, you can also include other sort options that enable you to add images, modify 
the arrow colors, and underline column headers. 
SORT_IMAGE= option— displays an image in the column header when you also specify the SORT= 
option.  If the data type for a column is None, that column cannot be sorted. Therefore, a sort image will not 
be displayed. 
SORT_UNDERLINE= optionadds an underline to a column header when you also specify the SORT= 
option. 
SORT_COLOR= option— enables you to specify colors for the Up and Down arrow images. 
You can exclude summaries from the sort by using a combination of the EXCLUDE_SUMMARY=”YES” option with 
HTMLCLASS=”noFilter”.  
In the following example, the data type None is specified for the first two columns, which means that those two 
columns cannot be sorted. The other columns use the default data types. This is a client-side sort, therefore more 
observations might result in lower performance. 
ods tagsets.tableeditor file="filename.html" style=sasweb2   
options(sort="yes" 
sort_arrow_color="brown" 
exclude_summary="yes" 
sort_image="c:\temp\newfolder\sort10.jpg" 
data_type="None,None" 
banner_color_even="beige" 
banner_color_odd="ffffcc" 
fbanner_color_even="blue" 
fbanner_color_odd="green"); 
proc print data=sashelp.orsales(obs=10) style(gtotal)={htmlclass="noFilter"} noobs; 
title "Exclude summay values"; 
format year 5.; 
format profit total_retail_price dollar10.; 
sum _numeric_; 
run; 
ods tagsets.tableeditor close; 
Red diamond icon 
displayed by the 
DESCRIBE= option 
Up arrow 
Reporting and Information Visualization
SAS Global Forum 2008
08
8
Documents you may be interested
Documents you may be interested