upload and view pdf in asp net c# : How to copy image from pdf to word document SDK application API .net html windows sharepoint RV010.Haworth0-part809

Paper RV-010 
Advanced Topics in ODS 
Lauren Haworth, Genentech, Inc., South San Francisco, CA 
This presentation will be a whirlwind tour of some of the most useful advanced techniques in ODS. Topics covered 
Tip sheets on new features 
inline formatting, 
RTF features: enhanced page numbers, hyperlinks, text, tables of contents, and RTF control words 
PDF features: bookmarks, enhanced page numbers, hyperlinks, text. 
This paper is aimed at the casual user of ODS who would like to take their skills to the next level. The examples are 
all taken from the book “ODS: Beyond the Basics” (SAS® Press, Fall 2009).  All of the examples are written using SAS 
9.2. You can find SAS 9.1.3 versions of the examples on the companion web site for the book. 
There is no better set of reference guides to ODS than the new tip sheets that were developed by the Base SAS 
Team, as shown on the Base SAS R&D web site (http://support.sas.com/rnd/base/ods/index.html). The tip sheets should 
not be considered a substitute for the ODS documentation, however, they are concise, accurate and extremely handy. 
And since they are maintained by the ODS developers, they represent the most up-to-date quick reference sheets 
How to copy image from pdf to word document - copy, paste, cut PDF images in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Detailed tutorial for copying, pasting, and cutting image in PDF page using C# class code
copy image from pdf to powerpoint; copying images from pdf files
How to copy image from pdf to word document - VB.NET PDF copy, paste image library: copy, paste, cut PDF images in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET Tutorial for How to Cut or Copy an Image from One Page and Paste to Another
copying a pdf image to word; copy image from pdf to word
In addition to these handy tip sheets, on the R&D web site you will find links to papers by the developers and the most 
current information on R&D efforts in the Base SAS arena. 
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
How to C#: Extract Image from PDF Document. C# users are able to extract image from PDF document page and get image information for indexing and accessing.
copy paste image pdf; cut picture pdf
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
VB.NET PDF - Extract Image from PDF Document in VB.NET. Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document in VB.NET Project.
copy paste picture pdf; how to copy pdf image into word
Inline formatting allows you to make simple formatting changes in specific parts of your output, and for specific output 
destinations. Inline formatting allows you to specify the style and layout characteristics of almost any cell or line in 
your output. 
For example, if you’d like to add footnote references to some of the labels in your output, you can use inline 
formatting to add the footnote numbers as superscripts. The following program demonstrates this technique by adding 
footnotes to the row labels of PROC MEANS output. 
The first thing you need to do to use inline formatting is to designate a character to be used to identify inline 
formatting. This character is called an escape character. It needs to be a character that is not used anywhere else in 
your output or program. Suggested characters include: ~, ^, #, and @.  
Now you can use this character to add superscripts to your format labels. The syntax for applying inline formatting 
always starts with the escape character. Then, for a superscript, you enclose the SUPER function name and the text 
to superscript in curly brackets ({ } ), as shown below. 
proc format; 
value superfmt 1='Control' 
2='Low Dose^{super 1}' 
3='High Dose^{super 2}'; 
If you apply the SUPERFMT format to CLASS variable TX in a PROC MEANS step that analyzes data set CLINICAL, 
you get the output shown below. The PROC MEANS step follows. 
options nocenter; 
proc means data=clinical mean std maxdec=1; 
class tx; 
var postsbp postdbp; 
format tx superfmt.; 
With footnote references in the table, the next step is to add the footnotes themselves. Inline formatting in the 
following FOOTNOTE statements generates superscripts for the two footnote numbers. 
footnote "^{super 1}2 mL/kg."; 
footnote2 "^{super 2}5 mL/kg"; 
The output below shows the new results with footnotes added to the report and with OPTIONS NOCENTER in effect.  
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
Ability to copy selected PDF pages and paste into The portable document format, known as PDF document, is a they are using different types of word processors.
cut image from pdf online; how to cut an image out of a pdf
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
Dim page As PDFPage = doc.GetPage(3) ' Select image by the point VB.NET: Clone a PDF Page. Dim doc As PDFDocument = New PDFDocument(filepath) ' Copy the first
how to copy pdf image to jpg; copying image from pdf to word
While the footnote superscripts match the table, the font size is so large that they look out of proportion to the table. 
To fix this, you can use the inline formatting STYLE function. Start with the escape character and enclose in curly 
brackets ( {} ), the STYLE function name and  the style attributes that you want to modify. The expression for each 
attribute and its new value is enclosed in square brackets ( [] ). You can nest functions as well, which the following 
FOOTNOTE statements demonstrate. The FONT_SIZE=2 attribute is applied to all the text in each footnote while 
superscripting is applied only to the footnote numbers. The output with these new footnotes is shown below.   
footnote "^{style [font_size=2] ^{super 1}2 mL/kg.}";   
footnote2 "^{style [font_size=2] ^{super 2}5 mL/kg}"; 
VB.NET PDF Convert to Word SDK: Convert PDF to Word library in vb.
It's 100% managed .NET solution that supports converting each PDF page to Word document file by VB.NET code. Convert PDF to Word Document in VB.NET Demo Code.
how to copy pdf image to word document; paste image in pdf file
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
Quick to remove watermark and save PDF text, image, table, hyperlink and bookmark to Word without losing format. Using this PDF to Word converting library
paste image into pdf form; paste picture to pdf
When producing multi-page reports, it’s useful to be able to indicate how many pages the reader should expect. This 
avoids problems caused by someone not receiving all of the pages. If your SAS reports have page numbers in the 
format of "Page 1 of 3", "Page 2 of 3", etc., and a page gets lost in a fax transmission, the receiver will know to call 
you back and ask for the missing page. 
Standard SAS page numbering just gives you a single page number. For example, the output below shows the top an 
RTF file created by ODS. The file contains a PROC PRINT report of data set CLIPS. This is the first page of the 
output, so the page number 1 is generated in the top right heading.  
This page number was generated by ensuring that page numbering was turned on with the following SAS system 
option setting: 
These page numbers are implemented in word processors using a field that automatically computes the page 
number. This is useful because if you later edit your ODS RTF output, the page numbering will adjust automatically. 
To see the field, in Word you can use ALT-F9 to toggle the field so that it shows the code instead of the page number. 
This is shown in the output below. 
The same word processor fields are used to generate page numbers in the “Page X of Y” format. To ask ODS to 
create those fields, you need to turn off page numbering with the NONUMBER SAS system option and you need to 
add an escape sequence to your TITLE statement that requests the “Page X of Y” text. The code to add the “Page X 
of Y” text to the PROC PRINT report follows. The code centers the title text “Data Set CLIPS” and it right justifies the 
“Page X of Y” text. If you use the BODYTITLE option, ODS will not place the “Page X of Y” text in the page header of 
the RTF document. 
title justify=center 'Data Set CLIPS'  
justify=right 'Page ^{pageof}'; 
C# Create PDF from Word Library to convert docx, doc to PDF in C#.
A convenient C#.NET control able to turn all Word text and image content into high quality PDF without losing formatting.
copy a picture from pdf to word; copy pdf picture
VB.NET PDF insert image library: insert images into PDF in vb.net
Additionally, this PDF document image inserting toolkit in VB.NET still offers users the capabilities of burning and merging the added image with source PDF
copy images from pdf; how to copy pdf image
For the RTF destination, SAS gives you a simple escape sequence to use to request the "X of Y" page numbers. The 
"pageof" escape sequence requests that ODS insert the word processor fields to generate the current page number 
and the total number of pages. You can see the results in the output below.  
The field codes can be viewed by pressing ALT-F9 in Word, which is shown below. 
This is a great way to add custom page numbers without having to know anything about RTF tags. However, this 
method has its limitations. The only page numbering format you can get with the {pageof} escape sequence is "X of 
Y”. If you’d like something different, like "X/Y", you have to do that with different ODS escape character functions as 
shown in the following specification. The “{thispage}” function returns the current page. The “{lastpage}” function 
returns the total number of pages in the document.    
title justify=center 'Data Set CLIPS'  
justify=right 'Page ^{thispage}/^{lastpage}'; 
These ODS ESCAPECHAR functions generate the actual RTF control strings for the page number in the desired 
format.  This is a better alternative than using the equivalent RTF control strings because the RTF control strings are 
very fussy about space, slashes, curly braces and line breaks; if you mistype the RTF control strings, you may create 
an unopenable RTF file.  
Adding a date to a header or footer provides useful information about when a file was created or modified. By default, 
ODS inserts an RTF control string that corresponds to the Word date field in the page header of RTF output. This 
means that the date value is updated to the current date each time the file is opened.  
Depending on why the date is needed, this may be what you want. For some reports, you want the date in the header 
to be the date the report was printed or delivered. For other reports, it may be preferable to have a fixed date that 
represents the date the report was generated. 
With ODS RTF, you can do it either way. To generate a page header with a dynamic date that will be updated every 
time the file is opened, you don’t need to do anything. As long as the default SAS system option of DATE is in effect, 
you will get dynamic dates in your output. For example, the output below shows the top of an RTF file created by 
ODS. The file contains a PROC PRINT report of data set CLIPS. This view shows the field code that is generated. (In 
Word, press ALT-F9 to toggle the field codes on and off.)  
The output below shows the date generated by this field code. The SAS system option NUMBER is off so page 
numbers are not shown in these two displays. 
To generate a page header with a static date based on the day the output was generated, all you have to do is add 
the SASDATE option to the ODS RTF statement. By adding this option, SAS will insert text for the current date when 
the program was run. Remember that the SAS date is actually the time and date that you started your SAS session. 
So,if a programmer keeps his/her session open for days at a time, this date might not correspond to the actual date 
the program was run. If you start a SAS session or batch process for your reports, then SASDATE will result in a 
static date that corresponds to the date the program was run. 
ODS RTF FILE='StaticDate.rtf' SASDATE; 
ODS writes this date as a fixed value. If you toggle to the field codes view by pressing ALT-F9, the view of the value 
remains the same and no field code is displayed. 
Both static and dynamic dates can be generated automatically by using the default system option of DATE. However, 
each of these date options gives you no control over the format of the date. The default dynamic or static dates will 
always be in the format "hh:mm dddd, MMMM dd yyyy". 
One of the reasons RTF is such a useful output destination is that we can cut and paste from the RTF document or 
we can add explanatory text to our RTF document to build our final report, but wouldn’t it be nice if the entire report 
could be generated automatically?  
To insert text into an RTF document, use the TEXT= option on an ODS statement to write to all open destinations 
including RTF. Both of the following statements will insert text into an open RTF destination file: 
ODS TEXT='Text to insert'; 
You also need to add the STARTPAGE=OFF option to your ODS statement to prevent SAS from inserting page 
breaks between your table and text.  
The output from the following program contains results from one ODS table from the PROC CORR step and adds text 
below the table. The ODS TEXT= statement follows the PROC CORR step. The text wraps across several lines, and 
only one statement is needed.  
An escape character is defined at the beginning of the program. It is used to signal to ODS to apply left and right 
margins of one inch to the text. The output is presented below.   
ODS SELECT PearsonCorr; 
proc corr data=clips nosimple; 
var mentions; 
with compete; 
This text was inserted with the TEXT= option. It can be used to add a detailed 
explanatory caption below a table or figure. This example uses an inline formatting 
escape sequence to apply different styles here. This text can also be formatted by 
using PROC TEMPLATE and the usertext style element'; 
To generate a more complicated report, just add more procedures and more TEXT= options. The following code 
generates the output shown below. Since we showed ODS TEXT= in the previous example, we will show the other 
version of the TEXT= option in this example. This version of the TEXT= option would ONLY write to the RTF 
destination, as opposed to the previous statement, which would write to ALL open destinations. 
ODS SELECT PearsonCorr; 
ODS RTF FILE='c:\temp\ReportWithText_4_38.rtf' STARTPAGE=OFF; 
ODS RTF TEXT='^{style[font_style=italic just=c fontweight=bold fontsize=14pt]This 
bold, italicized text in 14pt introduces the table. This introductory text will 
automatically wrap.}'; 
proc corr data=clips nosimple; 
var mentions; 
with compete; 
ODS RTF TEXT='^{newline 4}'; 
ODS RTF TEXT='^{style[font=(Arial)]Four lines appear before this sentence (in Arial) 
and a bar chart follows:}'; 
proc gchart data=clips; 
vbar mentions / midpoints=1 to 12 by 1 inside=freq; 
ODS RTF TEXT='^{style[fontweight=bold textdecoration=underline]This bold, underlined 
sentence concludes the report.}'; 
If you wanted to customize the text, you could, for example, use macro variables to add the current date or insert 
custom text based on the results in the data. One thing to keep in mind is that as the text gets lengthy, you will start to 
get warning messages in the log about the string being longer than 512 characters. These messages can be ignored 
or turned off with the NOQUOTELENMAX option. 
Web pages aren’t the only place you can use hyperlinks. You can put a link in a word processing document so that 
the reader can link to related information. With word processing documents frequently being shared electronically, 
rather than on paper, this can be a useful feature. 
Adding a hyperlink is simple. You can add this link anywhere you have text in your output, such as labels, formatted 
values, titles, and footnotes. All you need to do is add the following escape sequence where the escape character has 
been defined as the carat (^): 
This code applies the style attribute URL= to the subsequent text, which specifies a destination for the hyperlink. The 
following example adds a hyperlink at the bottom of the output using the ODS RTF TEXT= statement. Rather than 
putting the hyperlink in a footnote, which would be at the bottom of the page, the TEXT= feature places the hyperlink 
in a text box right below the procedure output. Remember that if we used the ODS TEXT= form of the option, the text 
would be written to all open destinations. 
ODS RTF FILE='Hyperlink.rtf'; 
proc freq data=clips; 
table compete; 
ODS RTF TEXT='^S={URL="http://www.myweb.com"}Source: www.myweb.com'; 
The resulting RTF file is shown the output below. You can see the text for the hyperlink below the table.  
If you move the mouse over the text, as in the example below, you can see that it is a hyperlink. However, it’s not 
obvious to the reader that a hyperlink is there, unless they happen to move the mouse over the correct part of the 
Documents you may be interested
Documents you may be interested