telerik pdf viewer mvc : Change pdf file to jpg SDK control service wpf web page asp.net dnn Enterprise-Development-with-Flex45-part744

it doesn’t bother loading it. This will prevent the loading of duplicate RSLs and will
substantially reduce the download time of some enterprise Flex applications.
In the class 
RSLItem
, we’ve changed the access level of the property 
url
from 
protected
to
public
:
public var url:String;//PATCHED - was protected
Because the source code of our versions of 
RSLItem
and 
RSLListLoader
is included in the project, these classes will be merged into the .swf file
and have precedence over the original classes with the same names pro-
vided in Flex SDK libraries.
As a side note, we recommend not using the keyword 
protected
. For
more details, read the blog post at http://tinyurl.com/m6sp32.
“Flex open sourcing in action!” would have made a nice subtitle for this section. The
very fact that the Flex SDK was open sourced gives us a chance to improve its func-
tionality in any enterprise application and possibly even submit some of the changes
to Adobe.
Now let’s run the OptimizedPortal application, which uses modified 
RSLLoader
Ex-
ample 8-16 depicts the code of this application, but we aren’t going to give a detailed
explanation of this code, because in the context of this chapter, it’s more important to
understand what’s happening under the hood when the modules are being loaded.
Example 8-16. OptimizedPortal.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application layout="vertical"
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:fx="http://www.faratasystems.com/2009/portal" >
<mx:Style source="styles.css"/>
<mx:Button id="b" label="Add module" click="addModule()"/>
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
import mx.modules.Module;
import mx.events.ModuleEvent;
import mx.modules.ModuleManager;
import mx.modules.IModuleInfo;
private var _moduleInfo:IModuleInfo;
private function addModule() : void {
// create the module - note, we're not loading it yet
moduleInfo =
ModuleManager.getModule("/FeedsModule/YahooFinancialNews.swf");
// add some listeners
Optimizing RSL Loading g | 427
Change pdf file 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
bulk pdf to jpg converter; convert pdf to jpg
Change pdf file 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
reader convert pdf to jpg; batch pdf to jpg converter
// load the module
_moduleInfo.load();
}
/**
* The handlers for the module loading events
**/
private function onModuleProgress (e:ModuleEvent) : void {
e.bytesTotal + " loaded.");
}
private function onModuleSetup (e:ModuleEvent) : void {
trace("ModuleEvent.SETUP received");
// cast the currentTarget
trace("Calling IModuleInfo.factory.info ()");
// grab the info and display information about it
var info:Object = moduleInfo.factory.info();
for (var each:String in info) {
trace("     " + each + " = " + info[each]);
}
}
private function onModuleReady (e:ModuleEvent):void {
trace("ModuleEvent.READY received");
// cast the currentTarget
var moduleInfo:IModuleInfo = e.currentTarget as IModuleInfo;
// Add an instance of the module's class to the
// display list.
trace("Calling IModuleInfo.factory.create ()");
}
private function onModuleUnload (e:ModuleEvent) : void {
trace("ModuleEvent.UNLOAD received");
}
]]>
</mx:Script>
<fx:PortalCanvas  width="100%" height="100%">
<fx:navItems>
<fx:NavigationItem>
preferredHeight="400" preferredWidth="850">
<fx:props>
<mx:Object
url="/FeedsModule/GoogleFinancialNews.swf"/>
</fx:props>
</fx:PortletConfig>
</fx:NavigationItem>
<fx:NavigationItem>
428 | | Chapter 8: Performance Improvement: Selected Topics
Online Convert Jpeg to PDF file. Best free online export Jpg image
You can drag and drop your JPG file in the box, and then start immediately to sort the files, try out some settings and then create the PDF files with the
convert pdf file to jpg on; convert pdf into jpg online
Online Convert PDF to Jpeg images. Best free online PDF JPEG
Online PDF to JPEG Converter. Download Free Trial. Convert a PDF File to JPG. Drag and drop your PDF in the box above and we'll convert the files for you.
convert pdf to 300 dpi jpg; changing pdf to jpg file
<fx:PortletConfig title="Just a Module" isModule="true"
preferredHeight="400" preferredWidth="850">
<fx:props>
<mx:Object
url="/FeedsModule/YahooFinancialNews.swf"/>
</fx:props>
</fx:PortletConfig>
</fx:NavigationItem>
</fx:navItems>
</fx:PortalCanvas>
</mx:Application>
Example 8-16 uses a number of tags from our library PortalLib, which is linked to the
OptimizedPortal project; its source code comes with the sample code for this chapter
(see the Preface). Following are very brief descriptions of these components:
PortletConfig
A bunch of public variables: 
portletId
title
preferredWidth
showMaximized
,
isSingleton
props
, and 
content
, which is a 
DisplayObject
NavItem
A component with a getter and setter for a label, a tooltip, an icon, and an associ-
ated portlet of type 
PortletConfig
PortletConfig
Describes the future portlet window
NavigationItem
Describes an icon on the portal desktop that can be clicked to create an instance
of that window
For the next experiment, we’ll clear the browser’s cache and start Charles to monitor
the loading process.
Flash Builder has a known issue: it sorts the libraries in the project’s
build path in alphabetical order, which may produce hard-to-explain
runtime errors in some cases. In particular, before running the
OptimizedPortal application, Flash Builder opens its project build path.
Ensure that datavisualization.swc is listed after utilities.swc; otherwise,
you may see an error about 
TweenEffect
.
Running the OptimizedPortal application displays the main view shown in Figure 8-10
really quickly, which is one of the most important goals of any RIA.
In Figure 8-11, Charles shows what .swf files have been loaded so far: OptimizedPor-
tal.swfflex.swfutilities.swffds.swf, and PortalLib.swf.
Optimizing RSL Loading g | 429
C# Image Convert: How to Convert Adobe PDF to Jpeg, Png, Bmp, &
C# sample code for PDF to jpg image conversion. This demo code convert PDF file all pages to jpg images. // Define input and output files path.
change format from pdf to jpg; changing pdf file to jpg
C# Image Convert: How to Convert Dicom Image File to Raster Images
RasterEdge.XDoc.Office.Inner.Office03.dll. RasterEdge.XDoc.PDF.dll. RasterEdge.XDoc. PowerPoint.dll. This demo code convert dicom file all pages to jpg images.
convert pdf to gif or jpg; best convert pdf to jpg
Figure 8-11. Charles shows initial downloads
Dragging the “Just a Module” icon from the bottom bar to the empty area of the ap-
plication loads the module and populates it with the data, as you can see in Figure 8-12.
In Figure 8-13, Charles shows that two more .swf files were loaded: the modules
YahooFinancialNews.swf and datavisualization_3.3.0.4852.swf.
For this experiment, we didn’t use a signed datavisualization.swz, be-
cause the goal here was to demonstrate the fact that even though the
datavisualization library is linked as RSL to more than one module, it’ll
get loaded only once.
Figure 8-10. The main view of the application OptimizedPortal
430 | | Chapter 8: Performance Improvement: Selected Topics
C# TIFF: How to Use C#.NET Code to Compress TIFF Image File
C:\demo3.jpg" }; // Construct List<REImage> object. List<Bitmap> images = new List<Bitmap>(); / Step1: Load image to REImage object. foreach (string file in
change pdf to jpg image; change from pdf to jpg
C# Create PDF from images Library to convert Jpeg, png images to
new Bitmap(Program.RootPath + "\\" 1.jpg")); images.Add PDFDocument(images.ToArray()); / Save document to a file. Program.RootPath + "\\output.pdf"; doc.Save
.net convert pdf to jpg; change pdf into jpg
After clicking the Show Chart (Figure 8-9) button, yet another module, ChartModule,
will be loaded, which also has the datavisualization RSL in its build path. The Optimi-
zedPortal view looks like Figure 8-14.
Charles then shows the results in Figure 8-15.
Figure 8-12. Loading the YahooFinancialNews module
Figure 8-13. YahooFinancialNews came with datavisualization.swf
Optimizing RSL Loading g | 431
VB.NET PDF Convert to Images SDK: Convert PDF to png, gif images
Convert PDF to Jpg, Png, Bmp, Gif, Tiff and Bitmap in ASP.NET. Or directly change PDF to Gif image file in VB.NET program with this demo code.
best pdf to jpg converter online; batch pdf to jpg
C# WPF PDF Viewer SDK to convert and export PDF document to other
PDF Document; Remove Password from PDF; Change PDF Permission Settings. Convert PDF to image file formats with high quality, support converting PDF to PNG
.pdf to jpg converter online; convert pdf page to jpg
Figure 8-15. ChartModule came without datavisualization
As you can see, ChartModule.swf has been downloaded, but its datavisualization RSL
has not, because it was already downloaded by the module 
YahooFinancialNews
—proof
that you can do a smarter RSL loading to improve your portal’s performance.
In this experiment, we’ve been using datavisualization.swc as a guinea pig RSL, but you
can and should apply the same technique for any business-specific RSL that your ap-
plication might use.
Figure 8-14. ChartModule is loaded
432 | | Chapter 8: Performance Improvement: Selected Topics
A Grab Bag of Useful Habits
This section discusses three areas that may seriously affect performance of your appli-
cation: memory leaks, Flash Builder’s Profiler, and the just-in-time compiler. At the
end of this section, you’ll find a checklist of items that can help you in planning
performance-tuning tasks.
Dealing with Memory Leaks
Wikipedia defines a memory leak as “a particular type of unintentional memory con-
sumption by a computer program where the program fails to release memory when no
longer needed. This condition is normally the result of a bug in a program that prevents
it from freeing up memory that it no longer needs” (http://en.wikipedia.org/wiki/Mem
ory_leak).
Flash Player offers help in dealing with memory leaks. A special process called Garbage
Collector (GC) periodically runs and removes objects from memory that the Flex ap-
plication no longer uses. It counts all references to each object in memory, and when
it gets down to zero, the object is removed from memory.
In some cases, two objects have references to each other, but neither of them is referred
to anywhere else. In this case, the reference count never becomes zero, but Flash Player
tries to identify such situations by running a slower method called mark and sweep.
Sure enough, you need to write code that nullifies reference variables that point to
objects that are not needed (
myGreatObj=null;
): if you call 
addChild()
, be sure not to
forget about 
removeChild()
; if you call 
addEventListener()
, keep in mind
removeEventListener()
.
The function 
addEventListener()
has three more optional arguments, and if the last
one is set to 
true
, it’ll use so-called weak references with this listener, meaning that if
this object has only weak references pointing to it, GC can remove it from memory.
Of course, if you ignore these recommendations, that’ll lead to littering RAM with
unneeded objects, but your main target in optimization of memory consumption
should be the unloading of unneeded data.
Closures
In some cases, there is not much you can do about memory leaks, and some instances
of the objects get stuck in memory, gradually degrading the performance of your
application.
A closure—or rather, an object representing an anonymous function—will never be
garbage-collected. Here’s an example:
myButton.addEventListener("click",
function (evt:MouseEvent){//do something});
A Grab Bag of Useful Habits s | | 433
With such syntax, the object that represents the handler function gets attached to the
stage as a global object. You can’t use syntax like 
removeEventListener("click",
myHandlerFunction)
here, because the closure used as an event handler didn’t have a
name. Things get even worse because all objects created inside this closure won’t be
garbage-collected, either.
Be careful with closures. Don’t use them just because it’s faster to create
an anonymous in-place function than declaring a named one. Unless
you need to have an independent function that remembers some varia-
bles’ values from its surrounding context, don’t use closures, as they
may result in memory leaks.
You can’t use weak references with the listeners that use closures, as they won’t have
references to the function object and will be garbage-collected.
If you add a listener to the 
Timer
object, use a weak reference; otherwise,
Flash Player will keep the reference to it as long as the timer is running.
Opportunistic garbage collector
The GC will work differently depending on the web browser your Flex application runs
in. The mechanism of allocating and deallocating the memory by Flash Player can be
browser-specific.
How do you determine that you have memory leaks? If you can measure available heap
memory before and after GC runs, you can make a conclusion about the memory leaks.
But this brings the next question: “How can you force GC?”
There is a trick with the 
LocalConnection
object that can be used to request immediate
garbage collection. If your program creates two instances of the 
LocalConnection
object
using the same name in the 
connect()
call, Flash Player will initiate the process of GC.
var conn1:LocalConnection = new localConnection();
var conn2:LocalConnection = new localConnection();
conn1.connect("MyConnection");
conn2.connect("MyConnection");
It’s not typical, but you can use the 
LocalConnection
object to send and
receive data in a single .swf, for example to communicate between mod-
ules of the same Flex application.
Some web browsers force GC on their own. For example, in Internet Explorer mini-
mizing the browser’s window causes garbage collection.
434 | | Chapter 8: Performance Improvement: Selected Topics
If you can force all your users to use Flash Player version 9.0.115 or later, you may use
the following API to cause GC: 
flash.system.System.gc()
.
Just-in-Time Benefits and Implications
Flex compiler is actually a set of subcompilers converting your ActionScript and MXML
code into different formats. For example, besides mxmlc and compc, there is a pre-
compiler that extracts the information from the precompiled ActionScript Byte Code
(ABC). You can read more about compilers at http://opensource.adobe.com/wiki/dis
play/flexsdk/Flex+3+Compiler+Design. The ABC is the format that Flash Player runs.
But the story doesn’t end here.
Most of the performance advances in the current version of AS3 as compared to AS2
are based on its just-in-time (JIT) compiler, which is built into Flash Player. During
the .swf load process, a special byte code verifier performs a lot of code analysis to ensure
that code is valid for execution: validation of code branches, type verification/linkage,
early binding, constants validation.
The results of the analysis are used to produce machine-independent representation
(MIR) of the code that can be used by the JIT compiler to efficiently produce machine-
dependent code optimized for performance. Unlike Flash VM code, which is a classic
stack machine, MIR is more like a parsed execution path prepared for easy register
optimization. The MIR compiler does not process the entire class, though; it rather
takes an opportunistic approach and optimizes one function at a time, which is a much
simpler and faster task. For example, the following is how the source code of an Ac-
tionScript function is transformed into the assembly code of the x86 Intel processor.
In ActionScript 3:
function (x:int):int {
return x+10
}
In ABC:
getlocal 1
pushint 10
add
returnvalue
In MIR:
@1 arg +8// argv
@2 load [@1+4]
@3 imm 10
@4 add (@2,@3)
@5 ret @4 // @4:eax
In x86:
mov eax,(eap+8)
mov eax,(eax+4)
A Grab Bag of Useful Habits s | | 435
add eax,10
ret
The difference in time for execution of the ABC code and x86 can be on the order of
10 to 100 times and easily justifies having an extra step such as the JIT process. In
addition, the JIT process does dead code elimination, common expressions optimiza-
tion, and constants folding. On the machine-code generation side, it adds optimized
use of registers for local variables and instruction selection.
You need to help realize these benefits by carefully coding critical (as opposed to over-
optimized) loops. For example, consider the following loop:
for (var i:int =0; I < array.length; i++) {
if( array[i] == SomeClass.SOMECONSTANT)...
It can be optimized to produce very efficient machine code by removing calculations
and references to other classes, thus keeping all references local and optimized:
var someConstant:String = SomeClass.SOMECONSTANT;
var len:int = array.length;
for (var i :int = 0; I < len; i++) {
if (array[i] == someConstant)
JIT is great at providing machine code performance for heavy calculations, but it has
to work with data types that the CPU is handling natively. At the very least, in order to
make JIT effective, you should typecast to strong data types whenever possible. The
cost of typecasting and fixed property access is lower than the cost of lookup, even for
a single property.
JIT works only on class methods. As a result, all other class constructs—variable ini-
tialization on the class level and constructors—are processed in interpreter mode. You
have to make a conscious effort to defer initialization from constructors to a later time
so that JIT has a chance to perform.
Using the Flash Builder Profiler
The Flash Builder Profiler monitors memory consumption and the execution time.
However, it monitors very specific execution aspects based on information available
inside the Virtual Machine and currently is incomplete. For example, memory reported
by the Profiler and memory reported by the OS will differ greatly, because the Profiler
fails to account for the following:
• Flash Player’s memory for code and system areas: hidden areas of properties as-
sociated with display objects
• Memory used by JIT
• The unfilled area of the 4 KB memory pages as a result of deallocated objects
More importantly, when showing memory used by object instances the Profiler will
report the size used by object itself and not by subobjects. For example, if you are
436 | | Chapter 8: Performance Improvement: Selected Topics
Documents you may be interested
Documents you may be interested