display pdf from byte array c# : Save pdf rotated pages SDK Library API .net asp.net web page sharepoint Conversion_to_R_Google_Earth_Inventory1-part1525

The following sections explain the SECbody code for each item  within a pop-up balloon. 
The sequence is that of the balloon text, not necessarily that of the R code. The body of the 
balloon text is in HTML format, enclosed in the KML description element and the standard 
XML CDATA element: 
<description><![CDATA[
HTML text here
]]></description>
Map label 
SECbody reformats the site label based on its type: 
and writes the name at the start of the pop-up balloon 
write ("<Placemark>", file=f, append=TRUE) 
write (paste("<name>", st, "</name>", sep=""), file=f, append=TRUE)
Maucha diagram 
This code in SECbody compiles the filename of the Maucha diagram on the local disk, and 
the URL on the Internet: 
imgFile<-paste("C:/tmp/wms/",Ter,"/",Ter,"_",PointID,"_m.png", sep="") 
imgLink<-paste("http://www.dwa.gov.za/iwqs/wms/data/",Ter,"/",Ter,"_",PointID, 
"_m.png", sep="") 
If the file is present on the local disk, the code assumes that the operator has also uploaded it 
to the Internet: 
if(file.exists(imgFile)) write(paste("<img src=\"", imgLink, "\" align=\"right\" 
/>", sep=""), file=f, append=TRUE) 
<styleUrl>#wmsPlacemark</styleUrl> 
<Style id="normalPlacemark"> 
<IconStyle><scale>0.4</scale> 
<Icon> 
<href>http://maps.google.com/mapfiles/kml/paddle/wht-circle-lv.png</href> 
</Icon> 
</IconStyle> 
<BalloonStyle> 
<bgColor>ccffff</bgColor> 
<text><![CDATA[ 
<font  face="Arial" color="#666666" size="+3"><b>$[name]</b></font><br /> 
<font  face="Verdana">$[description]</font><br /> 
<small>(Links may be slow to open.)<br /> 
$[geDirections]</small> 
]]></text> 
</BalloonStyle> 
</Style> 
Save pdf rotated pages - rotate PDF page permanently in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Users to Change the Rotation Angle of PDF File Page Using C#
pdf rotate just one page; rotate one page in pdf
Save pdf rotated pages - VB.NET PDF Page Rotate Library: rotate PDF page permanently in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
PDF Document Page Rotation in Visual Basic .NET Class Application
pdf rotate single page; how to rotate all pages in pdf
10 
Tertiary drainage region 
The tertiary drainage region consists of the first three characters of the quaternary drainage 
region: 
Ter<-substr(s$Qat,1,3) 
WMS feature_id 
SECbody outputs the tertiary drainage region and the feature_id linked by an underscore: 
write (paste("<b>WMS ", toupper(Ter), "_", PointID, "</b><br />", sep=""), file=f, 
append=TRUE) 
Site code using numbering convention 
If the site has a code of the type used in column two of Table 3, SECbody outputs it: 
write (paste(ref, "<br />", sep=""), file=f, append=TRUE) 
WMS feature_name 
The script converts the UPPER CASE site name to a more readable Title Case, then writes it 
to the table of contents entry: 
Name<-totitle(s$Name) 
write (paste("<Snippet maxLines=\"1\">",s$Name, "</Snippet>", sep=""), file=f, 
append=TRUE) 
and in the balloon text: 
write (paste(Name,"<br />"), sep="", file=f, append=TRUE) 
Site type and number of samples 
SECbody combines the site type and number of samples on a single line: 
write (paste("<i>", s$Located_On_Type[1], "</i> samples: <b>", s$No[1], "</b><br 
/>", sep=""), file=f, append=TRUE) 
Electrical conductivity 
SECbody queries the WMS and calculates the median conductivity: 
q<-paste("SELECT EC_Phys_Water FROM chem WHERE PointID = \"",PointID,"\"", sep="") 
c<-dbGetQuery(con,q) 
c<-na.omit(c) 
if(nrow(c)>0) medEC<-round(median(c$EC_Phys_Water)) 
else medEC<- NA 
If a valid median conductivity value is available, the script outputs the data, colouring the 
text red if the value is greater than or equal to 350 mS/m: 
if (is.na(medEC)) print (paste(stas,"- no EC data")) else 
if(s$No[1]==1)  write ("<small>Conductivity: ", file=f, append=TRUE) 
if(s$No[1]>1) write("<small>Median conductivity: ", file=f, append=TRUE) 
if (medEC<350) write (paste("<b>", medEC, "</b> mS/m</small><br />", 
sep=""), file=f, append=TRUE) 
else write (paste("<b><font color=\"#FF0000\">", medEC, "</font></b> 
mS/m</small><br />", sep=""), file=f, append=TRUE) 
Range of sampling dates 
In this version, the first and last sampling dates come from the SQLite intermediate database: 
if (s$No[1]==1) write (paste(s$FirstDate[1], "<br />", sep=""), file=f, 
append=TRUE) 
VB.NET TIFF: Rotate TIFF Page by Using RaterEdge .NET TIFF
specific formats are: JPEG, PNG, GIF, BMP, PDF, Word (Docx Save the rotated page(s) to new a TIFF Multiple image formats support for saving rotated TIFF page(
rotate individual pages in pdf reader; rotate pdf pages by degrees
VB.NET Image: Image Rotator SDK; .NET Document Image Rotation
VB.NET image rotator control SDK allows developers to save rotated image as are dedicated to provide powerful & profession imaging controls, PDF document, tiff
save pdf rotate pages; pdf reverse page order online
11 
else write (paste(s$FirstDate[1], " to ", s$LastDate[1], "<br />", sep=""), 
file=f, append=TRUE) 
The first and last sampling dates timestamp the point as well: 
if(s$No[1]==1) {    
write ("<TimeStamp id=\"ID\">", file=f, append=TRUE) 
write (paste("<when>", s$FirstDate[1], "</when>", sep=""), file=f, append=TRUE) 
write ("</TimeStamp>", file=f, append=TRUE) 
else { 
write ("<TimeSpan id=\"ID\">", file=f, append=TRUE) 
write (paste("  <begin>", s$FirstDate[1],"</begin>", sep=""), file=f, 
append=TRUE) 
write (paste("  <end>", s$LastDate[1], "</end>", sep=""), file=f, append=TRUE) 
write ("</TimeSpan>", file=f, append=TRUE) 
Coordinates 
The site coordinates come from the WMS monitoring_point table, because this is more up-to-
date than the inv2 table in the SQLite intermediate database: 
sw<-sqlQuery(channel, qw) 
Latitude<-sw$point_latitude[1] 
Longitude<-sw$point_longitude[1] 
[…] 
write (paste("Lon ", signif(Longitude,7), ", Lat ", signif(Latitude,7), "<br />", 
sep=""), file=f, append=TRUE) 
Link to time-series plot of water quality 
A separate script, baRcode.R, pre-generates a set of time-series plots of inorganic solutes, 
conductivity and pH from the chem table in the SQLite intermediate database. The files are 
currently in PNG format, because the more crisp PDF files are about ten times larger than the 
PNG files. SECbody checks for the existence of a plot file on the local disk and, if it is 
available, assumes that the operator has already uploaded it to the Internet: 
plotFile<-paste("C:/tmp/wms/",Ter,"/",Ter,"_",PointID,".png", sep="") 
plotLink<-paste("http://www.dwa.gov.za/iwqs/wms/data/",Ter,"/",Ter,"_",PointID, 
".png", sep="") 
if(file.exists(plotFile)) write(paste("<a href=\"", plotLink, "\">plot</a>|", 
sep=""), file=f, append=TRUE) 
Link to time-series water quality data 
At the same time as it generates the time-series plot for a site, the baRcode.R script creates a 
compressed comma-separated value (CSV) file with the data used in the plot. SECbody 
checks for the existence of the ZIP file on the local disk and, if it is available, assumes that 
the file is also on the Internet: 
zipFile<-paste("C:/tmp/wms/",Ter,"/",Ter,"_",PointID,".zip", sep="") 
zFile<-unlist(strsplit(fn(lgp,"HTM",pr, msym),"/")) 
zLink<-paste("./",zFile[length(zFile)], sep="")  # take HTML file from path 
zipLink<-paste("http://www.dwa.gov.za/iwqs/wms/data/",Ter,"/",Ter,"_",PointID, 
".zip", sep="") 
if(file.exists(zipFile)) write(paste("<a href=\"", zipLink, "\">data</a>|", 
sep=""), file=f, append=TRUE) 
Link to hydrological data 
If the site code has the characteristics of a hydrological station as shown in Table 3, 
SECbody generates a link to the Department of Water Affairs Hydrological Services cgi 
server. Note that from time to time Hydrological Services may update their site and the link 
format may change or become inaccessible. This is the code to update if that happens. 
C# TIFF: How to Rotate TIFF Using C# Code in .NET Imaging
VB.NET How-to, VB.NET PDF, VB.NET Word, VB Tiff page, like sorting and saving the rotated Tiff page 0); page.Rotate(RotateOder.Clockwise90); doc.Save(@"C:\rotate
rotate pdf page permanently; rotate pages in pdf and save
How to C#: Rotate Image according to Specified angle
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB.NET PowerPoint, VB.NET Tiff, VB.NET Imaging, VB.NET OCR, VB.NET Twain, VB Save the rotated image to
reverse page order pdf online; pdf expert rotate page
12 
if(his) write(paste("<a href=\"http://www.dwa.gov.za/hydrology/cgi-
bin/his/cgihis.exe/StationInfo?Station=", sta, "\">flow</a>|", sep=""), file=f, 
append=TRUE) 
Link to home page of spatial inventory 
All pop-up balloons have a link back to the home page of the inventory site. Bear this in 
mind if any change to the structure of the web site occurs. 
write( "<a href=\"http://www.dwa.gov.za/iwqs/wms/data/000key.htm\">home</a>|", 
file=f, append=TRUE) 
Link to explanation of Maucha diagram 
If the pop-up balloon contains a Maucha diagram, this link takes the user to an explanation of 
the origins and meaning of the diagram: 
MauchaLink<-"http://www.dwa.gov.za/iwqs/gis_apps/maucha.pdf" 
if(file.exists(imgFile)) write(paste("<a href=\"", MauchaLink, "\">Maucha 
key</a>|", sep=""), file=f, append=TRUE) 
If the script is generating a KML with Maucha symbols at the monitoring points, the 
following lines produce the required style code: 
if(msym && file.exists(imgFile)) { 
write (paste("<Style id=\"",st,"\"><IconStyle><scale>0.67</scale>", sep=""), 
file=f, append=TRUE) 
write (paste("  
<Icon>http://www.dwa.gov.za/iwqs/wms/data/",Ter,"/",Ter,"_",PointID,"_m.png</Icon>"
, sep=""), file=f, append=TRUE) 
write ("</IconStyle></Style>", file=f, append=TRUE) 
write (paste("<styleUrl>#",st,"</styleUrl>", sep=""), file=f, append=TRUE) 
else  
write (paste("<styleUrl>", lgpIcon(lgp,s$No), "</styleUrl>", sep=""), file=f, 
append=TRUE) 
SECtail and GRPtail 
SECtail closes off the secondary folder in the KML file: 
SECtail<-function (pr,se,lgp, msym) { # secondary catchment tail text 
write(paste("  </Folder><!-- end of",se,"-->"), file=fn(lgp,"KML",pr, msym), 
append=TRUE)  
and GRPtail closes off the group 
GRPtail<-function(lgp, pr, msym) { # write the folder closing text 
f<-fn(lgp,"KML",pr, msym) 
write("</Folder>", file=f, append=TRUE) 
This brings us to the end of the KML creation code. The script also produces a set of HTML 
tables to permit access to the plots and data without using Google Earth. 
Creating HTML tables: HTMhead, SECbody, HTMtail 
The HTML functions in kml_WMS_mnpts_html.R produce standard HTML text with 
information about the dataset and links to the stations. As with the KML files, the HTML 
files are divided by primary drainage region or water management area, and surface water or 
groundwater. The HTML files do not include Maucha diagrams at this stage, to avoid 
reducing the download speed. 
VB.NET Imaging - Data Matrix Plug-in SDK Control
Generated Data Matrix barcode image can be freely rotated, resized and code page.AddImage(image, New PointF(100F, 100F)) docx.Save("C:\\Sample_Barcode.pdf").
permanently rotate pdf pages; save pdf after rotating pages
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit OpenOffice
documents, CSV file and Text file are allowed to be rotated. PowerPoint (.ppt, .pptx) on webpage, Convert CSV to PDF file online Users can save annotations to
how to rotate just one page in pdf; pdf rotate page
13 
HTMhead 
The HTMhead function writes the document head block, CSS style code, corporate labelling, 
standard links and explanatory text (Figure 3). 
SECbody 
The SECbody function described above (page 7) deals mainly with the data for a single point 
in the KML file but also includes the following code to write out a one-line site entry in the 
HTML table. 
HTMtail 
HTMtail writes a date and time stamp at the bottom of the page, outputs the javascript for 
Google Analytics page tracking and closes off the HTML file with </body> and </html>.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
<style type="text/css"> 
<!--  
@import url("style_wms_ge.css");  
--> 
</style> 
<title> 
 region  2011-11-14 10:20:53  surface 
, RQS WMS water quality data Department of Water Affairs, version 2.11 </title> 
</head> 
[…] 
VB.NET Word: VB.NET Code to Rotate Word Page Within .NET Imaging
Here, we can recommend you VB.NET PDF page rotating tutorial and multi any original quality during or after the Word page rotating; Save the rotated Word page
rotate individual pdf pages reader; how to rotate pdf pages and save
VB.NET Image: How to Process & Edit Image Using VB.NET Image
permanently? A 2: This VB.NET image editor control SDK allows developers process target image file and save edited image as new file.
rotate pdf page by page; rotate pdf pages
14 
Figure 3. Standard table layout. HTMhead generates the part up to and including the table header while 
der while 
SECbody generates each line within the table. 
15 
Special functions 
Apart from the main functions in kml_WMS_mnpts_html.R dealt with above, the script 
contains several special service functions (Table 4). 
Table 4. Special functions in kml_WMS_mnpts_html.R 
Service function 
purpose 
ver 
version numbering and description of changes 
totitle 
convert UPPER CASE to Title Case, with a list of fixed lower case and fixed 
upper case words—words containing digits remain upper case 
fn 
compose the required KML and HTML file names based on region and types 
ico 
set the names and locations of monitoring site marker files 
wmaname 
set up a list of water management areas in numerical order 
Located_On_Group  define groups of Located_On_Type definitions to reduce map legend clutter 
lgpIcon 
compose the group icon code as defined in ico  
mtxt 
set the automatic text to display when Maucha diagrams are present 
mkey 
write the KML code to display a Maucha key at the lower left of the screen 
Results 
Conversion of the original awk script to R was fairly rapid, and the first version was ready in 
June 2011. Testing took place in July and August 2001 and the R-generated system was live 
at http://www.dwa.gov.za/iwqs/wms/data/000key.asp by 13 September 2011. Google 
Analytics registered 465 visits to the inventory from 15 September to 15 November 2011, 
and no complaints or queries were received. 
The KML format is quite versatile and, apart from Google Earth, displays successfully in 
Google Maps (Figure 5) and ArcGIS.com (Figure 6). It should work in Microsoft Bing Maps, 
though the instructions for working with KML in Bing are not very clear. 
Discussion 
RODBC has opened up opportunities for direct query of the WMS database when assembling 
data for the KML files. Examples are the latitude and longitude, which previously came from 
an intermediate file, and the electrical conductivity entry, which would have involved too 
much intermediate work to be practical in the old awk version of the script. 
The use of cascading style sheets (CSS) for tabular information has resulted in a neater and 
more compact display (Figure 4). Although these are nothing new and could have been part 
of the original system, the conversion to R was an opportunity for experimenting with and 
incorporating different methodologies. 
16 
Figure 5. KML file from Figure 2 displayed in Google Maps. 
Maps. 
Figure 4. Updated table appearance using CSS (below). 
. 
17 
Conclusion 
The conversion of kml_WMS_mnpts_html.awk to kml_WMS_mnpts_html.R has resulted in 
a more manageable and extensible piece of code. Future modifications should be more easily 
implemented. 
This document should serve as a useful reference for anyone wanting to port the spatial 
inventory to another platform, or planning to implement a similar system for other data sets. 
Figure 6. KML file from Figure 2 displayed in ArcGIS.com. 
.com. 
18 
References 
Crampton, J. W. 2008. Keyhole, Google Earth, and 3D Worlds: An Interview with Avi Bar-
Zeev. Cartographica 43:85-93. 
Google 2011. KML 2.2 reference. 
http://code.google.com/apis/kml/documentation/kml_tags_beta1.html 
McDonald, R. D. 1989. New numbers for gauging stations, monitoring points and systems as 
well as for data and information TR 141 (in Afrikaans). Technical report, Department of 
Water Affairs, Pretoria. 
R 2011. R: A language and environment for statistical computing. R Foundation for 
Statistical Computing, Vienna, Austria. 
Silberbauer, M. J. and Geldenhuys, W. G. 2008. Using Keyhole Markup Language to create 
a spatial interface to South African water resource data through Google Earth. In 
Proceedings of the FOSS4G 2008 conference. 
http://www.foss4g.org/index.php/foss4g/2008/paper/view/74/28. 
Silberbauer, M. and Geldenhuys, W. 2009. Google Earth - a spatial interface for SA water 
resource data. PositionIT, (April/May 2009): 42-47. 
Documents you may be interested
Documents you may be interested