// in the XDP format goes here
}
}
Repeat the process of attaching XML to the XDP template using E4X until all print
pages are ready. This method of printing from Flex requires less effort for reporting and
creation of dynamic layouts. It might also provide better printing quality and searcha-
bility within the printed document.
Example 11-3 is the server-side part written as a Java ServerSide Page. It uncompresses
the XDP stream received from the client, creates the PDF using 
XDPXFAHelper
, turns it
into an array of bytes, and sends it back to the client as the MIME type 
"application/
pdf"
.
Example 11-3. Render.jsp
<%@ page language="java"
import="java.io.*,
java.util.*,
javax.xml.parsers.*,
org.w3c.dom.Document,
flex.messaging.*,
flex.acrobat.pdf.XDPXFAHelper,
flex.messaging.util.UUIDUtils,
org.w3c.dom.Document
"
%><%!
private static void _log(Object o){
System.out.println(""+o);
}
throws Exception{
String val = request.getParameter(name);
return (val!=null && val.length()>0)?val:defVal;
}
return getParam(request, name, null);
}
private void processRenderRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception{
String data      = getParam(request, "document");
_log("template="+template);
_log("data="+data);
template = FlexContext.getServletContext().getRealPath(template);
_log("template real="+template);
// You must have LCDS license to use XDPXFAHelper
XDPXFAHelper helper = new XDPXFAHelper();
helper.open(template);
// Import XFA dataset
if( data!=null ){
_log("data.length="+data.length());
PDF Generation on the Server r | 577
Convert pdf to jpeg on - 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
pdf to jpeg; convert pdf to jpg converter
Convert pdf to jpeg on - 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
convert pdf to gif or jpg; convert pdf to jpg file
ByteArrayInputStream bais = new
DocumentBuilderFactory builderFactory =
DocumentBuilder builder =
Document dataset = builder.parse(bais);
helper.importDataset(dataset);
} else
_log("data="+null);
byte[] content = helper.saveToByteArray();
_log("content="+content);
helper.close();
ServletOutputStream out3 = response.getOutputStream();
response.setContentType("application/pdf");
response.setContentLength(content.length);
out3.write(content);
}
%><%
_log("");
_log("--------------------------------------------");
_log("render.jsp");
processRenderRequest(request, response);
%>
The WebORB PDF Generator from Midnight Coders allows you to ei-
ther create XML printing templates on the server or generate them in
Flex clients. To use this solution, you have to install the WebORB
Server. For more details, visit http://www.themidnightcoders.com/prod
ucts/pdf-generator/overview.html.
Now we’ll take a look at how to generate a PDF on the Flex side.
PDF Generation on the Client
AlivePDF is an open source library for generating PDFs in ActionScript on the client
side. It’s offered under the MIT license at http://alivepdf.org; download AlivePDF.swc
and link it to your Flex Builder project. One of the classes included in AlivePDF.swc is
called 
PDF
.
Unless you are developing an AIR application or deploying it for Flash
Player 10 (see the next note), even client-generated PDF content has to
be sent to a server that will just bounce it back (see Example 11-20) to
have the web browser open the Acrobat Reader plug-in.
578 | | Chapter 11: Printing with Flex
Online Convert Jpeg to PDF file. Best free online export Jpg image
Online JPEG to PDF Converter. Download Free Trial. Convert a JPG to PDF. You can drag and drop your JPG file in the box, and then start
change format from pdf to jpg; change from pdf to jpg
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 online pdf to jpg; convert pdf to 300 dpi jpg
Basic Printing with AlivePDF
The process of generating PDFs in AlivePDF starts with instantiation of the 
PDF
class,
specifying the print orientation, units of measurement, and the paper size. Then you
create and add pages to the instance of the 
PDF
object, and finally you call the function
savePdf()
to turn these pages into a 
ByteArray
and save them to the PDF file on your
filesystem if you use Adobe AIR. If this is a web application written in Flex, the same
savePdf()
function sends the 
ByteArray
to the server with the deployed script
create.php (supplied by alivepdf.org), which will return this array of bytes to your web
browser as a PDF document.
Starting from Flash Player 10, the 
FileReference
class allows you to save
files locally. Its function 
save()
opens the pop-up window, allowing the
user to specify the filename for saving the data. In our example, this
eliminates the need for a round trip to the server that does nothing but
bounce this array of bytes. Keep in mind, though, that after saving the
PDF this way, the user will need to complete an extra step to open the
file with Acrobat Reader or any other program.
Example 11-4 shows the process of preparing and saving a PDF file with AlivePDF.
Example 11-4. Basic printing with AlivePDF: test1.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical" horizontalAlign="center" verticalAlign="middle">
<mx:Button label="Hello World!!!" click="hw()"/>
<mx:Script><![CDATA[
import org.alivepdf.fonts.Style;
import org.alivepdf.fonts.FontFamily;
import org.alivepdf.saving.Method;
import org.alivepdf.layout.Size;
import org.alivepdf.layout.Unit;
import org.alivepdf.layout.Orientation;
import org.alivepdf.pdf.PDF;
private function hw():void{
var p:PDF = new PDF(Orientation.PORTRAIT, Unit.MM, Size.A4);
p.addPage();
p.setFont(FontFamily.ARIAL, Style.NORMAL, 12);
p.addText("10x10", 10, 10);
p.addText("100x100", 100, 100);
p.addMultiCell(50, 8, "Hello World2");
savePdf(p, "hw.pdf");
}
PDF Generation on the Client t | | 579
C# Create PDF from images Library to convert Jpeg, png images to
C# Example: Convert More than Two Type Images to PDF in C#.NET Application. This example shows how to build a PDF document with three image files (BMP, JPEG and
convert multiple pdf to jpg online; best pdf to jpg converter online
C# PDF Convert to Images SDK: Convert PDF to png, gif images in C#
Besides raster image Jpeg, images forms like Png, Bmp, Gif, .NET Graphics, and REImage (an You can use this sample code to convert PDF file to Png image.
c# pdf to jpg; convert multipage pdf to jpg
private function savePdf(p:PDF, fileName:String):void{
var ba:ByteArray = p.save(Method.LOCAL);
var fs:FileStream = new FileStream();
var f:File = File.desktopDirectory.resolvePath(fileName);
fs.open(f, FileMode.WRITE);
try{
fs.writeBytes(ba);
} catch (e:*){}
fs.close();
}
]]></mx:Script>
</mx:WindowedApplication>
After you click the button Hello World!!! (see the example code), a file called hw.pdf
is created in the AIR desktop directory (see Chapter 9 for details). For example, Fig-
ure 11-1 shows our hw.pdf file, which was saved in the directory C:\Documents and
Settings\Administrator\Desktop.
Figure 11-1. Sample output of the AlivePDF program
580 | | Chapter 11: Printing with Flex
VB.NET PDF Convert to Tiff SDK: Convert PDF to tiff images in vb.
Resize converted Tiff image using VB.NET. Convert PDF file to Tiff and jpeg in ASPX webpage online. Online source code for VB.NET class.
change pdf file to jpg file; change file from pdf to jpg
VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.
Convert PDF to HTML. |. Home ›› XDoc.PDF ›› VB.NET PDF: PDF to HTML. Convert PDF to HTML in VB.NET Demo Code. Add necessary references:
change pdf file to jpg online; convert multiple pdf to jpg
The goal here was to give you a taste of the process of preparing the document with
AlivePDF. To investigate the complete set of AlivePDF’s APIs, visit http://AlivePDF.org.
AlivePDF does a good job of creating objects and assembling them into pages, which
are then converted into a PDF format. But it still requires you to prepare (in addition
to the screen version) a second copy of the UI to be printed. It’s not what-you-see-is-
what-you-get (WYSIWYG) programming. This process requires manual allocation and
measurements of each object in the PDF-to-be.
The blog http://alivepdf.bytearray.org is yet another good source of up-
to-date information regarding AlivePDF.
Enhancing AlivePDF
What can be done to improve this process? We still want to use AlivePDF’s printing
engine, but we don’t want to manually write the code specifying styles and measure-
ments as we did in Example 11-4. In this section, you’ll see how to create components
and containers that are smart enough to present themselves as PDF or XDP objects.
All examples from this section are located in the Flex Builder project
called clientPdfAir (which comes with this chapter; see the Preface for
information on obtaining the sample code) and are self-contained AIR
applications. alivePDF.swc has to be present in the build path of the
project.
The program test2.mxml in Example 11-5 illustrates Flex-to-PDF-object conversion, a
big difference compared to test1.mxml. It uses the ActionScript class 
AlivePdf
Printer
, which is included with the code samples of this chapter. Its 
addObject()
method converts a given Flex object to corresponding PDF snippets, one at a time. You
don’t need to worry about the sizes, locations, fonts, or styles of these objects. This is
WYSIWYG. Flash Player is a rendering engine here.
Example 11-5. Printing with AlivePDF from an AIR application
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:printer="com.farata.printing.pdf.client.*"
layout="vertical" >
<mx:Style source="main.css"/>
<mx:Canvas width="100%" height="100%" backgroundColor="white">
<mx:Label id="lbl1" text="Hello" x="10" y="10"/>
<mx:Label id="lbl2" text="World" x="50" y="30" fontWeight="bold"/>
<mx:Label id="lbl4" text="Happy" x="70" y="90" fontSize="16"
PDF Generation on the Client t | | 581
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
Convert PDF to HTML. |. C#.NET PDF SDK - Convert PDF to HTML in C#.NET. How to Use C# .NET XDoc.PDF SDK to Convert PDF to HTML Webpage in C# .NET Program.
convert pdf picture to jpg; change pdf into jpg
VB.NET PDF Convert to Images SDK: Convert PDF to png, gif images
Sometimes, to convert PDF document into BMP, GIF, JPEG and PNG raster images in Visual Basic .NET applications, you may need a third party tool and have some
change pdf to jpg; convert pdf to jpeg on
textDecoration="underline"/>
<mx:Button id="btn1" label="Button1" x="70" y="240"/>
</mx:Canvas>
<mx:ApplicationControlBar width="100%">
<mx:Label text="File name:"/>
<mx:TextInput id="txtFileName" text="hw2.pdf"/>
<mx:Button label="Save PDF" click="printPdf()"/>
</mx:ApplicationControlBar>
<printer:AlivePdfPrinter id="prn" printComplete="viewPdf()"/>
<mx:Script><![CDATA[
import flash.net.URLRequest;
private var file:File;
private function printPDF():void{
prn.addObject(lbl1);
prn.addObject(lbl2);
prn.addObject(lbl3);
prn.addObject(lbl4);
prn.addObject(lbl5);
prn.addObject(btn1);
file = prn.printToFile (txtFileName.text);
}
private function viewPdf():void{
var req:URLRequest = new URLRequest(file.url);
navigateToURL(req, "_blank");
}
]]></mx:Script>
</mx:WindowedApplication>
The code in Example 11-5 produces the screen as it’s shown in the AIR runtime, on
the left in Figure 11-2. On the right side, you can see the hw2.swf file produced by this
program and shown in Adobe Acrobat. The fonts in the Acrobat Reader image look
smaller because of the small zoom percentage.
The listings that follow do not include the entire source code of the class 
AlivePdf
Printer
; that comes with the source code of this chapter’s samples. The idea is to have
a set of components that can expose their information in a form suitable for printing.
The method 
AlivePdfPrinter.addObject(o)
calls 
locateExtension()
, which instanti-
ates the appropriate object that can present itself in a form suitable for AlivePDF
(Example 11-6).
582 | | Chapter 11: Printing with Flex
Example 11-6. The method AlivePdfPrinter.locateExtension()
private static function locateExtension(o:*):IPdfPrinterExtension{
if( o is Label )
return new LabelPdfExtension(/*o*/);
if( o is PdfPrintDataGrid )
return new PdfPrintDataGridPdfExtension(/*o*/);
if( o is DataGrid )
return new DataGridPdfExtension(/*o*/);
if( o is Container )
return new ContainerPdfExtension(/*o*/);
if( o is UIComponent )
return new UIComponentPdfExtension(/*o*/);
return null;
}
After identifying the type of the object to be printed, the object exposes its font
and style information that’s being passed to the AlivePDF’s 
PDF
object for printing.
Example 11-7 shows the function 
addObject()
from the ActionScript class
com.farata.printing.pdf.client.extensions.LabelPdfExtension
.
Figure 11-2. The results of printing with enhanced AlivePDF
PDF Generation on the Client t | | 583
Example 11-7. The addObject() method in the LabelPdfExtension class
public function addObject(o:*, printer:IAlivePdfPrinter):void{
var pdf:PDF = printer.pdf;
var c:Label = Label(o);
if( c==null ) return;
if( !c.visible )
return;
var fontFamily:String = c.getStyle("fontFamily");
if( fontFamily==null )
fontFamily = FontFamily.ARIAL;
var style:String = "";
if( c.getStyle("fontWeight")=="bold" )
style += "B";
if( c.getStyle("fontStyle")=="italic" )
style += "I";
if( c.getStyle("textDecoration")=="underline" )
style += "U";
var size:int = c.getStyle("fontSize");
allocateSpace(c, printer);
pdf.textStyle(color/*, alpha*/);
pdf.setFont(fontFamily, style, pxToPt(size));
var ptText:PPoint = mapPoint(c, printer);
ptText.y.px += c.height;
pdf.addText(c.text, ptText.x.pt, ptText.y.pt);
}
Example 11-7’s code gets the styles, font, and text from the Flex 
Label
object and
initializes appropriate properties of the 
PDF
object per the requirements of the AlivePDF
library.
The sample code of this chapter as well as the clear.swc library has several similar
extensions for a number of Flex components (see 
com.farata.printing.swc
), and you
can keep adding more objects to your own business framework of PDF-ready
components.
These extensions are not subclasses of corresponding Flex components, but rather
utility classes that know how to present the content of components to AlivePDF.
584 | | Chapter 11: Printing with Flex
While writing the method 
addObjects()
for your components, keep in
mind that measurements in Flash Player are in pixels and you may need
to convert them into other units required by the AlivePDF API.
If you’d like to see what’s inside the generated hw2.pdf file, just open it with any text
editor; you’ll see something like Example 11-8 (which is just a fragment of the file).
Example 11-8. A fragment of the h2.pdf content
%PDF-1.4
1 0 obj
<</Type /Pages
/Kids [3 0 R
]
/Count 1
>>
endobj
3 0 obj
<</Type /Page
/Parent 1 0 R
/MediaBox [0 0 595.28 841.89]
/Resources 2 0 R
/Rotate 0
/Dur 3
/Contents 4 0 R>>
endobj
4 0 obj
<</Length 780>>
stream
2 J
0.57 w
0 Tr
/GS0 gs
0 Tw 0 Tc 100 Tz 0 TL
BT /F1 7.00 Tf ET
Q
0 Tr
/GS1 gs
0 Tw 0 Tc 100 Tz 0 TL
BT /F2 7.00 Tf ET
Q
0 Tr
/GS2 gs
0 Tw 0 Tc 100 Tz 0 TL
BT /F3 7.00 Tf ET
(And) Tj ET Q
0 Tr
/GS3 gs
0 Tw 0 Tc 100 Tz 0 TL
BT /F1 12.00 Tf ET
PDF Generation on the Client t | | 585
70.50 737.19 34.68 0.60 re f Q
0 Tr
/GS4 gs
0 Tw 0 Tc 100 Tz 0 TL
BT /F2 18.00 Tf ET
q 0 0.5019607843137255 0 rg BT 55.50 692.64 Td (New Year) Tj ET Q
/GS5 gs
q 47.25 0 0 16.50 52.50 645.39 cm
/I1 Do Q
endstream
endobj
5 0 obj
<</Type /ExtGState
/SA true
/CA 1
/n 5
/BM /Normal
/ca 1
>>
endobj
...
15 0 obj
<<
/Producer (Alive PDF 0.1.4.6)
/CreationDate (D:200905152226)
>>
endobj
16 0 obj
<<
/Type /Catalog
/Pages 1 0 R
/OpenAction [3 0 R /FitH null]
/PageLayout /SinglePage
>>
endobj
xref
...
trailer
<<
/Size 17
/Root 16 0 R
/Info 15 0 R
>>
startxref
2467
%%EOF
After this chapter was written, a new open source library called purePDF
became available. It's an ActionScript port of a popular Java library
called iText. You can download purePDF at http://code.google.com/p/
purepdf/.
586 | | Chapter 11: Printing with Flex
Documents you may be interested
Documents you may be interested