pdfsharp asp.net mvc example : Change pdf to jpg online control application system azure web page winforms console iPhoneInAction17-part1710

146
C
HAPTER
Debugging iPhone web pages
8.2.2
Using Firefox
Though we should perhaps remain loyal to Apple software in this book, we’ve found 
robust and well-supported add-on system. Table 8.2 lists the current places to down-
load Firefox and the add-ons that we like best for web development.
Firefox ships with a JavaScript Error Console that seems to provide slightly better and 
to version 3 of Firefox, a 
DOM
Inspector shipped with the browser. It provided more 
architectural info than Safari’s similar Web Inspector, but less info on the files that 
make up a page (and no info on databases!). Now it’s available as an add-on. Firefox 
notably has no built-in tool to let you see how long your page takes to download. 
Firefox really shines when you install Chris Pederick’s Web Developer add-on. This 
gives you access to a menu and optional toolbar that provide you with a huge array of 
information about the web page you’re viewing.
We find the forms functions—which allow you to see exactly what variables are 
holding what values in your forms—and the outline functions—one of which lets 
you outline table cells, so you can see exactly how they’re built—to be the most use-
ful features. There are also 
CSS
-related functions, a variety of validators, and a lot 
Table 8.2 Firefox and the two add-ons can all be downloaded from Mozilla.
Program
Location
Firefox
http://www.mozilla.com/firefox/
DOM Inspector
https://addons.mozilla.org/en-US/firefox/addon/1806
Web Developer add-on
https://addons.mozilla.org/en-US/firefox/addon/60
Firebug add-on
http://www.getfirebug.com/
Figure 8.2 Firefox (left) and Safari (right) both include JavaScript error consoles that you can use to 
debug Canvas and any other JavaScript work you’re doing.
Licensed to Nick Wood <nwood888@yahoo.com>
Best program to convert pdf to jpg - Convert PDF to JPEG images in C#.net, ASP.NET MVC, WinForms, WPF project
How to convert PDF to JPEG using C#.NET PDF to JPEG conversion / converter library control SDK
convert multi page pdf to single jpg; pdf to jpg converter
Best program to convert pdf to jpg - VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.net, ASP.NET MVC, WinForms, WPF project
Online Tutorial for PDF to JPEG (JPG) Conversion in VB.NET Image Application
change pdf file to jpg; reader convert pdf to jpg
147
Debugging with your desktop browser
more. And yes, there’s a Speed Report too, though it depends upon an external ser-
vice to work.
USING THE FIREBUG CONSOLE
Firebug is another great add-on for Firefox. It’s by i
UI
developer Joe Hewitt, and it 
gives you an in-depth look at all of a page’s code. Whereas Web Developer is more 
about how things look, Firebug is more about how they work. There’s some overlap, but 
the two make a good combination. Besides providing data on things like the 
DOM
CSS
, and what headers look like on the internet, Firebug also provides a great 
console
object that gives you a variety of tools for debugging.
After you install Firebug, you can activate it at any time by choosing Open Firebug 
from among your Firefox tools. When you do that, a panel will appear along the bot-
tom of the screen. Most of the tabs provide you with the information that we’ve 
already discussed. It’s the Console tab that bears further discussion.
First of all, the command line at the bottom, marked by “>>>”, gives you the ability 
to enter raw JavaScript commands that will be executed immediately. Figure 8.3 shows 
Figure 8.3 The Firebug console allows you to type in JavaScript functions, making Canvas even simpler.
Licensed to Nick Wood <nwood888@yahoo.com>
C# Create PDF from images Library to convert Jpeg, png images to
Best and professional C# image to PDF converter SDK C# Example: Convert More than Two Type Images to bmp")); images.Add(new Bitmap(Program.RootPath + "\\" 1
change pdf file to jpg file; convert pdf to jpg for online
VB.NET PDF Convert to Images SDK: Convert PDF to png, gif images
Best adobe PDF to image converter SDK for page As PDFPage = doc.GetPage(0) ' Convert the first page.ConvertToImage(ImageType.PNG, Program.RootPath + "Output.png
convert pdf pages to jpg online; convert pdf file to jpg
148
C
HAPTER
Debugging iPhone web pages
how easy it is to play around with Canvas by adding a new Bezier curve to our final 
Canvas example from chapter 6.
The Firebug console also has another great feature: it introduces a new 
console
JavaScript object that can be used to aid JavaScript debugging in various ways. Some of 
the most important 
console
methods are listed in table 8.3. 
The 
console
methods can be called from within your JavaScript functions. Informa-
tion will then be reported directly to your Firebug console when you view your page 
from Firefox:
console.log("Starting JavaScript Execution!");
Our listing of 
console
methods is by no means exhaustive. Firebug also provides over 
a dozen special functions that are available only from your console command line and 
that may be used to monitor events, look at objects, profile code segments, and other-
wise figure out how your JavaScript is working. An in-depth look at these topics is 
beyond the scope of this book, but the Firebug website has great documentation on 
the console and the command-line options alike. 
As a result of all these features, Firebug should be your first stop when you’re 
doing Canvas work or any other type of JavaScript coding. But what if you really need 
to see precisely how something looks on an iPhone? If you’re working on a Macintosh, 
you can just open a new window to solve this problem as well. 
8.2.3
Using the iPhone Simulator
As we’ve mentioned several times, Apple provides an iPhone Simulator for the Macin-
tosh. All of the screenshots of the iPhone in this book come from the iPhone Simula-
tor, captured with Apple’s Grab utility.
Table 8.3 The Firebug console methods make it easy to report info and data.
Method
Summary
console.log
Writes text to the Firebug console. May include variables for strings (%s), num-
bers (%i or %d) , floating-point numbers (%f), and object hyperlinks (%o). 
Variant methods console.debugconsole.infoconsole.warn
and console.error similarly write text to the Firebug console, but with  
different emphasis.
console.assert
Tests whether an expression is true, and, if not, writes to the console.
console.dir
Creates a listing for an object, identical to the Firebug DOM info.
console.dirxml
Creates an XML listing for an object, identical to the Firebug HTML info.
console.profile
Encapsulates the JavaScript profiler when used with 
console.profileEnd.
console.trace
Creates a JavaScript stack trace.
Licensed to Nick Wood <nwood888@yahoo.com>
VB.NET Create PDF from images Library to convert Jpeg, png images
Best and professional image to PDF converter SDK Components to batch convert PDF documents in Visual Basic images.Add(New REImage(Program.RootPath + "\\" 1
change pdf to jpg on; convert pdf to jpg converter
C# PDF Convert to Tiff SDK: Convert PDF to tiff images in C#.net
Best C#.NET PDF converter SDK for converting PDF to PDF documents to tiff format in Visual C# .NET program. Also supports convert PDF files to jpg, jpeg images.
convert pdf to jpeg on; change pdf into jpg
149
Debugging with your iPhone
The iPhone Simulator comes as part of the iPhone 
SDK
, but even if you’re not 
planning to do any SDK programming, it might be worth getting the current version 
of the 
SDK
(though the download is quite large, at over 1 
GB
at the time of this writ-
ing). We’ll talk more about what all is in the 
SDK
package (and how to get it) in chap-
ter 10.
The iPhone Simulator doesn’t come with any additional development tools, like 
the other browsers we’ve been talking about, but it provides the most precise simula-
tion of an iPhone that you’ll find, other than using the iPhone itself (and though we 
both have iPhones sitting right on our desks, hooked up to our computers, we still 
find it faster to pop up the Simulator, even to test out a simple web page, let alone 
SDK
programs that require downloading).
Besides looking at pages on your iPhone Simulator, you can also rotate the iPhone 
left or right using the arrows keys. Perhaps most importantly, you can simulate two-
finger gestures by holding down the option key when you scroll over the Simulator. 
Option-shift will additionally lock these fingers in relation to each other, allowing you 
to generate a two-fingered scroll event.
Seeing exactly what things look like on an iPhone should help you quickly resolve 
many purely visual problems with your iPhone web code. With that said, we’re going 
to leave servers and browsers behind, and instead move on to more in-depth debug-
ging tools. 
8.3
Debugging with your iPhone
Desktop programs are generally the best way to debug your iPhone web apps. That’s 
because you can have a fully featured desktop browser sitting next to an iPhone Simu-
lator. With the first, you can easily look at source and use any number of development 
tools, and with the second you can look at how something appears on the iPhone.
Conversely, debugging on the iPhone itself can be more troublesome. Not only 
don’t you have those development tools, but you can’t even look at the source code! 
You’ll be falling back to using 
alert()
s for debugging purposes, and you’ll be head-
ing back to your desktop anyway to read and modify code. So, especially if you have 
access to the iPhone Simulator, our best advice for debugging directly with your 
iPhone is: don’t do it
Despite that admonition, you might have to if you don’t have access to a Mac or if 
the iPhone Simulator and the actual iPhone aren’t showing the same results (though 
we’ve only seen a difference thus far on websites that used too precise an agent lookup 
when trying to discover if you were using an iPhone). In these situations, there are a 
few tips and tricks likely to help you out. We’ll be referring to two freeware programs 
within this section, both of which are listed in table 8.4.
Of these two programs, the first is intended specifically for JavaScript debugging, 
while the second—which we’ll meet as part of a larger discussion of bookmarklets 
shortly—supports more general 
HTML
debugging. We will not be discussing a third 
tool, Firebug on the iPhone, because it stopped working when iPhone 
OS
2.0 was 
released, with no indication that it’s going to be repaired in the future.
Licensed to Nick Wood <nwood888@yahoo.com>
C# PDF Convert to Images SDK: Convert PDF to png, gif images in C#
Best PDF converter SDK for Visual Studio .NET for PDFPage)doc.GetPage(0); // Convert the first page.ConvertToImage(ImageType.PNG, Program.RootPath + "Output.png
.pdf to .jpg converter online; change file from pdf to jpg on
VB.NET Image: Visual Basic .NET Guide to Draw Text on Image in .
sure that you can create the best picture with you can freely use the method below in your program. powerful & profession imaging controls, PDF document, image
batch pdf to jpg; changing pdf to jpg on
150
C
HAPTER
Debugging iPhone web pages
8.3.1
Using iPhone Debug
Jon Brisbin’s iPhone Debug is a JavaScript debugging program. He explained the 
need for the new tool by saying:
The iPhone Debug Console is meant to give greater visibility and interactivity on 
your iPhone/iPod Touch while doing development. I grew frustrated having to go 
through the “include console.log statement then reload” method of debugging. I 
wanted something similar to Firebug’s fantastic console and debugger.
In trying to find something that would fit my needs, I came across Joe Hewitt’s 
iPhone/Firebug integration, but I wanted something more robust and that worked 
without firebug and requiring “console.log” in the desktop browser.
(http://code.google.com/p/iphonedebug/)
The complete installation instructions are listed at the iPhone Debug website. They’re 
complex enough that they’re likely to change through additional revisions, so we 
haven’t repeated them here.
Generally, iPhone Debug provides you with similar functionality to the desktop 
Firebug, centering around a desktop console that you can use to receive data about a 
page you’re viewing on your iPhone. 
8.3.2
Using bookmarklets
iPhone Debug is great for troubleshooting JavaScript code on your iPhone, but you 
may also want to debug plain HTML—possibly when you don’t have a desktop com-
puter available. For this situation, there’s one more tool that you might find useful: 
bookmarklets.
The word bookmarklet comes from combining the words bookmark and applet. 
They’re little bits of JavaScript code that are encoded as 
URL
s. Thus, when you see a 
mini-application that you like, you save it as a bookmark, and then you can activate it 
at any time just by selecting the appropriate link from your bookmark list.
For the iPhone, bookmarklets can give you all the client-side functionality that you 
want but don’t have access to: things like viewing source, and using client-side tools 
like those found in Firefox and Safari.
Listing 8.1 shows code that will view the source of a page, written by Erwin Harte
based on original code by Abe Fettig.
var sourceWindow = window.open("about:blank"); 
var newDoc = sourceWindow.document; 
Table 8.4 Publicly available programs can make debugging on the iPhone easier.
Program
Location
iPhone Debug
http://code.google.com/p/iphonedebug/
iPhone Web Developer
http://www.manifestinteractive.com/iphone/#_Webdev
Listing 8.1 The code for a show-source bookmarklet
Licensed to Nick Wood <nwood888@yahoo.com>
C# Create PDF Library SDK to convert PDF from other file formats
Best C#.NET component to create searchable PDF document from Microsoft Office String outputFile = Program.RootPath + "\\" output.pdf"; // Create a
changing pdf to jpg; convert pdf image to jpg
VB.NET Create PDF Library SDK to convert PDF from other file
with Visual Basic .NET class and able to create PDF in both .NET WinForms and ASP.NET program. Best VB.NET component to convert Microsoft Office Word
.net convert pdf to jpg; c# pdf to jpg
151
Profiling for the iPhone
newDoc.open(); 
newDoc.write("<html><head><title>Source of " + document.location.href + 
"</title><meta name=\"viewport\" id=\"viewport\" 
content=\"initial-scale=1.0;" + "user-scalable=0; maximum-scale=0.6667;
width=480\"/><script>function do_onload()" + 
"{setTimeout(function(){window.scrollTo(0,1);},100);}
if(navigator.userAgent.indexOf" + "(\"iPhone\")!=-1)
window.onload=do_onload;</script></head><body></body></html>"); 
newDoc.close(); var pre = 
newDoc.body.appendChild(newDoc.createElement("pre")); 
pre.appendChild(newDoc.createTextNode(
document.documentElement.innerHTML));
The code itself is basic JavaScript, and we won’t go too far into the details. When 
clicked, this bookmarklet jumps to a brand new window that contains the entire text 
of the web page as a 
<pre>
element. There’s also a tiny bit of magic to scroll the 
chrome on an iPhone, solely for aesthetic purposes. In order to turn this code into a 
bookmarklet, you just need to 
urlencode()
it so that the JavaScript is properly format-
ted as a 
URL
.
You can create whatever bookmarklets you want, to add functionality to your 
iPhone. But there’s already a large collection of them available at the iPhone Web 
Developer site listed in table 8.4. To use that site, browse to it on your desktop Safari, 
adding the bookmarklets that you like to your bookmarks menu. Then you sync your 
Safari bookmarks to your iPhone through iTunes, and you’ll have instant access to the 
Web Developer bookmarks that you wanted.
Having now looked at several ways in which you can make your iPhone web pages 
work correctly, we’re going to finish up with a look at how they can work better
8.4
Profiling for the iPhone
Profiling—or performance analysis—is important for any type of computer program. 
But we’ve gotten sloppy about profiling web pages in the last several years as band-
width has gotten cheaper and more abundant. With the iPhone, we now need to sit up 
and start paying attention again. This is because of some of the unique features of 
the iPhone.
We’ve already touched several times upon the fact that an iPhone in the wild 
depends upon the 
EDGE
or 3G network for downloading. This means that we have to 
create smaller, leaner pages. But we also always need to remember that one of the 
iPhone’s unique features is its energy consciousness, and as a result we shouldn’t be 
creating web pages that take more juice than they need.
Solving the bandwidth problem is an easy one, because there are lots of tools avail-
able to help out, such as Safari’s Network Timeline, which shows where your web page 
is getting slowed down. Generally, when analyzing bandwidth you should try to 
remember the low-bandwidth lessons of yesteryear, including the following: 
Minimize the size of graphics by using more lossy 
JPEG
s.
Keep your iPhone stylesheets small.
Licensed to Nick Wood <nwood888@yahoo.com>
152
C
HAPTER
Debugging iPhone web pages
Don’t use stylesheets or other page inclusions that aren’t required for your 
iPhone pages.
Use Ajax when you can to reload parts of pages rather than whole new pages.
Besides showing you how long files are taking to load, the Network Timeline might 
also remind you of files that you hadn’t even realized were being loaded, and thus are 
slowing you down for no reason.
Solving the energy problem is more difficult only because it’s not an issue you usu-
ally have to think about when creating pages for desktop use. The top thing you need 
to watch is JavaScript. You don’t want to include timeouts or event handlers that are 
constantly going to go out to the network or engage in other high-cost activities. Gen-
erally, you should think carefully before putting any sort of infinite loop on a page 
that’s going to be viewed by an iPhone. It might be 
OK
for an animation or some other 
client-side activity that will quietly shut off when the phone goes to sleep, but you 
should make sure you’re polite about anything more than that. You don’t want users 
avoiding your iPhone website because you drained their batteries.
The general lesson for iPhone profiling is this: pay attention and write the sort of 
carefully considered code that you were probably thinking more about in the 1990s, 
before bandwidth and 
CPU
became cheap.
8.5
Summary
Over the past six chapters, we’ve covered the libraries and tools that you can use to 
write iPhone web pages, but we’ve also done our best to show standard iPhone archi-
tectures in the process. Generally, it all comes down to understanding the iPhone’s 
key features. Knowing them and what they mean is as important to writing iPhone 
code as the actual features and functions we’ve been discussing.
An always-on internet is the thing that allows us to write web apps, and, as we’ve just 
seen, power consciousness is an important consideration in profiling. The iPhone’s 
Lessons for SDK developers
In all honesty, we don’t have much for you SDK developers this time. Most of our dis-
cussion in this chapter was about web servers and clients, and clearly those are go-
ing to have little crossover with SDK development. The only point of particular 
relevance is the section on iPhone profiling. 
Thinking about energy consciousness is going to be even more important when we 
get into SDK development. There’s a limit to how much damage a web programmer 
can do, because the iPhone ultimately controls access through the Safari interface. 
On the other hand, as an SDK programmer you’re going to have access to a lot more 
fundamental code. Apple has done what it can to keep native programs from gobbling 
up an iPhone’s battery, but you’re going to need to do your part too.
Licensed to Nick Wood <nwood888@yahoo.com>
153
Summary
unique input and output have been relevant to almost everything we’ve talked about in 
writing web pages, while its orientation awareness has occasionally been both an issue 
and an opportunity. The iPhone’s location awareness is the only topic we haven’t been 
able to look at when thinking about web applications, because that information isn’t 
available yet to the web developer.
In this chapter, we’re offered our best advice on how to make the web program-
ming that you’re doing easier. But the internet is a huge place increasingly full of 
great open source software and freeware. It’s entirely possible that you’ve already 
found tools that you like better than the ones we’ve suggested.
Now that we’ve finished with our overview of the web, we invite you to take some 
time to get used to how the iPhone works in its web incarnation. Web programs will 
always remain among the easiest and most accessible programs that you can create for 
the iPhone, thanks to the simplicity of the web-based languages that have been devel-
oped over the last 15 years. As we discussed in chapter 2, even if you move on to the 
SDK
, we believe that web programming will continue to have its place.
But we also hope that you’ll eventually be champing at the bit to do more: that 
you’ll want to get into the guts of the iPhone and learn how to create native applica-
tions that can better utilize the iPhone’s unique features and that can run with or 
without access to a network. For that reason, we invite you to move on to part 3 of this 
book, which explores the flip side of iPhone programming: the 
SDK
. To help you get 
there, we’ve written a special chapter intended to help bootstrap web developers into 
Objective-C coders; that’s up next.
Licensed to Nick Wood <nwood888@yahoo.com>
154
SDK programming 
for web developers
We’ve spent the last six chapters talking about how to program great web pages and 
applications using familiar languages such as 
HTML
, JavaScript, and 
PHP
; brand-
new libraries such as the WebKit, i
UI
, and Canvas; and helpful tools such as Dash-
code, Firebug, and Safari. As we discussed in chapter 2, though, web development 
isn’t the be-all and end-all of iPhone programming. There are some programs that 
will just be better suited for native programming on the iPhone. Apple provides a 
development platform for doing this sort of programming called the 
SDK
(software 
development kit). The 
SDK
includes a set of tools, frameworks, and templates that 
we’ll meet fully in the next chapter. It also depends on a particular programming 
language: Objective-C.
If you’ve never worked with Objective-C, don’t panic. This chapter is intended 
to build on your experiences with web development (which we assume includes 
This chapter covers
Rigorous programming languages
Object-oriented programming languages
The MVC architectural pattern
Licensed to Nick Wood <nwood888@yahoo.com>
155
An introduction to C’s concepts
some sort of dynamic programming language, such as 
PHP
, Ruby on Rails, Python, or 
Perl) so that you’ll be prepared to work with Objective-C when you encounter it in the 
next chapter.
We’ll do this by focusing on three major topics. First we’ll talk about C, which is a 
more complex and rigorous programming language than many of the somewhat free-
form web-based languages. It’s also the core of Objective-C. Then we’ll talk about 
object-oriented programming, which is the style of programming used by Objective-C. 
Finally we’ll hit on 
MVC
, an architectural model used by many different programming 
languages, including Objective-C. If you’re already familiar with some of these con-
cepts, just skip the section where the concept is described.
Before we start this whirlwind tour, we’ll offer one caveat: none of these short over-
views can possibly do justice to the topics. There are complete books on each of these 
topics, and if you feel like you need more information, you should pick one up. This 
chapter will prepare you so that you will not only understand the code in part 3 of this 
book, but will also be ready to dive right in yourself by tweaking and ultimately build-
ing on the copious examples that we’ll provide.
9.1
An introduction to C’s concepts
The syntax of C will look a lot like whatever language you’re familiar with. However, it 
may vary from your web language of choice in how it deals with some big-picture 
areas, such as declarations, memory management, file structure, and compilation. 
We’ve summarized all these ideas in table 9.1, but we’re going to talk about each of 
them in turn at more length. 
Our goal here isn’t to teach you how to program in C. If you want more informa-
tion on that, the definitive reference is The C Programming Language, Second Edition, by 
Brian W. Kernighan and Dennis M. Ritchie (Prentice Hall, 1988). Instead,our goal is 
Table 9.1 The rigorous style of C requires you to think about a few new programming topics.
C concept
Summary
Declaration and typing
You must declare variable types. 
You must declare function argument types and return types. 
You may need to repeat these declarations in a header file.
Memory management
You may sometimes need to explicitly manage the memory usage of your 
variables.
Pointers
Some variables are represented as pointers to spaces in memory.
File structure
Programs are divided between source (.c) and header (.h) files.
Directives
Precompiler commands are marked with the # sign. This includes the 
#include directive, which incorporates header files into source files.
Compiling
Your code is turned into a machine-readable format when you compile it, 
not at runtime.
Licensed to Nick Wood <nwood888@yahoo.com>
Documents you may be interested
Documents you may be interested