asp.net pdf viewer user control : Create pdf thumbnail SDK Library service wpf asp.net .net dnn PGCGNewsletterBook5-part612

EOM News & Views
Issue 11, April 2009
Page [ 51 ]
[ 51 ]
EOM 8.0 Feature
(continued from page 1)
The corresponding XSL file (SelectEmailBodyText.XSL) plucks that data from the input data file, specifically the text within the "body" node:
In our example, the input file will contain only the variable data and we will rely on the stylesheet to handle the formatting.  The input file XML file looks
like:
<?xml version="1.0" encoding="utf-16"?>
<Register-Email>
<To>SteveD@PrettyGoodConsultingGroup.com</To>
<Subject>National Do Not Call Registry - OPEN AND CLICK on Link to Complete Your Registration</Subject>
<Body>
<
>https://www.donotcall/register/RegConf.aspx?BBC3C4BC-F8BD-491B-8B61-1EE180858B8C</ReplyLink>
<
>1234</LastFourDigits>
</Body>
</Register-Email>
The stylesheet (XSLT) file is a little more complicated because we include the formatting commands as well as references of where the variable data
(ReplyLink, LastFourDigits) is to be inserted.  The stylesheet is also more complicated because we used a GUI program to design the stylesheet (more on
that below).  The really important syntax in the stylesheet is:
<xsl:value-of select="Register-Email/Body/
"/>
<xsl:value-of select="Register-Email/Body/
"/>
This is where the input data from the input XML file, node ReplyLink and node LastFourDigits is merged into the output stream.   Note that the value of
the To and Subject nodes are not referenced in the XSL file because that data is used by the EOM Transform Job directly when emailing the file.  As you
might guess, there can be many nodes of data in the input XML file can then be referenced in the resultant HTML email.  Once processed via the Transform
Job, the result is an email that looks like the graphic on the bottom of page 6.
(continued on page 4)
<?xml version="1.0" encoding="utf-16"?>
<Demo1-Email>
<To>SteveD@PrettyGoodConsultingGroup.com</To>
<Subject>Demo1 from XML, converted to PDF, and sent via e-mail</Subject>
<
>
<p>Dear Enterprise Output Manager enthusiast,</p>
<p>
This is an example of what can be done with XML in Enterprise Output Manager.
</p>
<p>
The body is simply HTML text extracted from the original XML file.
You can provide HTML markup in your data to have <b>
bold and/or <u>underlined</u> text</b>
and even <span style='color:red'>color</span>.
</p>
...
</Body>
...
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:svg="http://www.w3.org/2000/svg"
version="2.0">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<head>
<title>Generating HTML from XML</title>
<body>
<xsl:copy-of select="//
"/>
</body>
</head>
</html>
</xsl:template>
</xsl:stylesheet>
Create pdf thumbnail - Draw thumbnail images for PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
pdf files thumbnails; how to create a thumbnail of a pdf document
Create pdf thumbnail - VB.NET PDF Thumbnail Create SDK: Draw thumbnail images for PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
thumbnail view in for pdf files; pdf no thumbnail
EOM News & Views
Issue 11, April 2009
Page [ 52 ]
[ 52 ]
This simple example can be made even simpler if we assume that an application creates individual XML files for each email to be sent.  Maybe it is a web
application that fires off as soon as the customer submits the phone number on a web page, or maybe the application looks into a database every 15
minutes for new entries to be handled.  No matter how the XML file is generated, if it is written into a directory that the EOM Directory Monitor is "watching"
then getting the file into the EOM environment is done.  The File Mask is configured to submit a Transform Job to process the file.    Note - you could
use the new HTTP interface to feed the data to EOM from the web application, but that is discussion for another newsletter.
The Transform Attribute configuration is really simple.  You give the attribute a name and then define a "Source", which is really a string that is used for
matching one or more of the new XML Processing Directives.  Much like the behavior of the File Mask, the Source string is used as a match conditional
starting at the top of the list of XML Processing Directives and continues through the list until there is a match.  You can configure XML Processing
Directives to Continue Search After Match.  Once the Source string matches the XML Processing Directives Source string, the Condition property is evaluated
and, if true, the XML Directive is executed.
The XML Processing Directive is not quite as simple.   Note that the
Condition of the XML Directive is simply to verify that there is a //Body
section within the input file.  We need to create an email and want to use
our XSLT file to create the body of the email message.  Notice that the
To and Subject fields are automatically defined from the input file data via
XPath statements.  If this email was always sent to the person or
distribution list then the Directive could have that email address defined
directly so it would not be required in the XML input file.  The remaining
email properties are identical to the Email Attribute properties.
Why design the XSL stylesheet with a GUI program?  Very simply, creating
an XSL file from scratch requires significant intestinal fortitude and a deep
knowledge of the XSL syntax ("not for the faint of heart" was one
description we heard).  You can certainly compose the stylesheet from
scratch using Notepad or other text-based editor, but using a GUI to "draw"
the expected result should be much easier.   You also may find Notepad less than satisfactory if the XML and/or XSL file do not have records ending in
carriage-return linefeed - your first indication of trouble will be that the records wrap throughout the displayed area.  There are a handful of editors that
present the XML/XSL better, one is the Microsoft Visual Studio Tools for Applications, another is the Altova XMLSpy.    One product that provides a GUI
interface to create XSL stylesheets isAltova's
Stylevision product.
(continued on page 5)
How to C#: Generate Thumbnail for Word
Images. Convert Word to ODT. Convert PDF to Word. File: Create, Load a Word File. File: Merge Text Search. Insert Image. Thumbnail Create. Thumbnail Create. |. Home
generate pdf thumbnails; view pdf thumbnails in
How to C#: Generate Thumbnail for PowerPoint
Conversion. Convert PowerPoint to PDF. Convert PowerPoint File: Create, Load a PowerPoint File. File Annotate PowerPoint. Text Search. Insert Image. Thumbnail Create
pdf file thumbnail preview; show pdf thumbnail in html
EOM News & Views
Issue 11, April 2009
Page [ 53 ]
[ 53 ]
The Altova Stylevision program provides a drag & drop design environment where data references from an XML file (or database) can be inserted into the
stylesheet.   Stylevision has numerous other features, we will stick to the simple example here, where it is used to create the format of the HTML email.
The steps to create a stylesheet using Altova’'s Stylevision are:
1) Select New / New from XML Schema/DTD/XML...
2) Browse to your example XML file
3) If you do not already have an XML schema, you will be required to select "Generate new XML Schema" and provide a file name
4) Create your stylesheet
A) Add the static text, graphics, hyperlinks, and whatever to the page
B) Add dynamic Bookmarks for the dynamic data (from the XML file).  The "Insert", "Insert Bookmark" menu selection allows you to select
the Dynamic node right out of the example XML file
C) Add dynamic Hyperlinks for the dynamic hyperlink data (from the XML file).  The "Insert", "Insert Hyperlink" menu selection allows
you to select the Dynamic node right out of the example XML file
D) Save the design in the Altova native format (.sps)
E) Go to "File"  / "Save Generated Files" and select "Save Generated XSLT-HTML File..."
F) Edit the resultant .XSLT file.  This step is messy.  Editing is much easier if you use an XML/XSL editor like Microsoft Visual Studio
Tools for Applications.
1) Replace the string "<title/>" with "<title>a</title>" (found after first <html> <head> sequence)
2) Remove the <xsl:attribute name="name"> and </xsl:attribute> around each of the dynamic Bookmarks you added.
One of the major advantages of using the GUI design software is that you can quickly modify the look and feel of the stylesheet, including fonts, colors,
images, and so on.
Step 1   
Step 4a
VB.NET Image: Program for Creating Thumbnail from Documents and
language. It empowers VB developers to create thumbnail from multiple document and image formats, such as PDF, TIFF, GIF, BMP, etc. It
create pdf thumbnail; show pdf thumbnails in
How to C#: Generate Thumbnail for Raster
PDF Reading, C#.NET Annotate PDF in WPF, C#.NET PDF Create, C#.NET VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel How to C#: Generate Thumbnail for Raster.
pdf reader thumbnails; .pdf printing in thumbnail size
EOM News & Views
Issue 11, April 2009
Page [ 54 ]
[ 54 ]
Step 4 B & C
How to C#: Set Image Thumbnail in C#.NET
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel How to C#: Set Image Thumbnail in C#.NET. With XImage.Raster SDK library, you can create an image viewer and
pdf thumbnail fix; pdf thumbnail
Create Thumbnail in Web Image Viewer | Online Tutorials
or Images; Create Thumbnail; Generate Barcodes on Your Documents; Read Barcodes from Your Documents. Multi-page Tiff Processing; RasterEdge OCR Engine; PDF Reading
enable pdf thumbnail preview; show pdf thumbnail in
EOM News & Views
Issue 11, April 2009
Page [ 55 ]
[ 55 ]
Then, from here you can spruce up the formatting without changing the input data.
Create Thumbnail Winforms | Online Tutorials
Create Thumbnail; Generate Barcodes on Your Documents; Read Barcodes from Your Documents. Multi-page Tiff Processing; RasterEdge OCR Engine; PDF Reading; Encode
generate pdf thumbnail c#; pdf thumbnail html
How to C#: Overview of Using XImage.Raster
You may edit the tiff document easily. Create Thumbnail. See this C# guide to learn how to use RasterEdge XImage SDK for .NET to perform quick file navigation.
pdf file thumbnail preview; pdf thumbnails
EOM News & Views
Issue 11, April 2009
Page [ 56 ]
[ 56 ]
Highly skilled,  creative, solution  provider
focused on the Unisys Enterprise Output
Manager  product  (formerly  known  as
DEPCON) with a sense of urgency sums up
who we are and what we do.  We provide
general  Enterprise  Output  Manager
consulting, 
migrations, 
upgrades,
configuration,  training,  and  custom
programming.
On-site  services,  remote  services,  and
general consulting are available now.
Why use PGCG?  Deep knowledge of the
EOM product integrated into a variety of
customer environments sets us apart.   Our
customer’s production environment depends
on solid, working solutions that we provide.
Who are we?
In the February newsletter we discussed the
Alert Service configuration.  In an example
we stated that we wanted to know when the
Legacy  Assistant  stopped  and  then
proceeded to explain how to configure the
Alert Policy to do that.  Only one problem -
Astute  EOM  user  Dave  McCann  of
Lumbermans Merchandising points out that
the alert pops only after a Custom Job
attempts to use the Legacy Assistant.   He
also  reports  that  EOM  Development
recommends that you may also want to
configure to run the email script if the
EmailJobConfiguration alert occurs so either
type of job will notify you when the Legacy
Assistant is not running.
Unisys Customer Education has scheduled a
web-based EOM Basic Workshop for April
21st -> April 24th.  The class is held from
11am to 3pm (EST). Contact Unisys for
details.
Write
 brief  description  and  send  it  to
SteveD@PrettyGoodConsultingGroup.com for
future newsletter discussion.
Interested in EOM training?  We can either
do custom training on-site, via WebEx or
arrange for a formal class through Unisys.
Please contact us for details.
Quick Hits
Time to Upgrade?
Pretty Good Consulting Group, LLC
4235 Ivy Court North
Lake Elmo, Minnesota  55042
www.PrettyGoodConsultingGroup.com
"Transpromo" has been getting a lot of press (and
hype) since the word was conceived in 2008.
What it means is adding targeted marketing
messages to regularly printed and distributed
output.  For example, you receive bank statements
and bills every month.  Wouldn’'t it be great if
you also had advertising on those bills?  {yeah
rah rah}  But this idea is typically taken a little
further:  use color, images, and personalize the
advertisement  specifically  for  that  customer.
AND, you may be able to offer this advertising
space to other companies for profit.
There are good reasons why this is a hot topic.
First, the statements and bills (sometimes called
"transactional information")  have  a very high
viewing rate compared to general advertising, as
well as a longer viewing time.  This means that
the recipient actually looks at the paper before it
hits the recycle bin and maybe even is viewed
multiple times as the document is handled.  Next,
there is usually unused (a.k.a. "white space")
areas on these types of documents.  Finally, there
is  an  opportunity  for  cost  savings:  replace
inserts  and  save  postage  costs  since  the
statement/bill has to be sent anyway.
So what does this have to do with EOM?  Well,
the EOM Data Dependant Attribute (DDA) feature
is perfectly suited for transpromo composition.
DDA lets you add graphics (Position Graphic,
Draw Rectangle), text (Print Data with word
wrap), and color (fonts, images) quite easily.
Even better, DDA gives you the ability to add
transpromo information without  changing the
input stream.  DDA could be configured to add
promotional messages regardless of the recipient
or add that information intelligently based on
information on that page for personalization.
For example, suppose you are a bank that would
like to market a new certificate of deposit (CD)
product which  requires a minimum  $10,000
opening  deposit.     EOM  and  DDA  already
compose the bank statements, so simply add the
DDA logic to add all of the balances for the
customer, if it is greater than $10,000 you print
a graphic in color, their name, and an eye-
catching persuasive phrase.  If the total of
balances is less than $10,000, you still print a
graphic (maybe not in color), their name, and a
hopeful  message  that  they  should  someday
consider this CD product.
Note  that  you  can  change  the  transpromo
message every day if you want and you DO NOT
need to modify the incoming print stream.
newsletter
EOM News and Views
Issue 12, May 2009
Transpromo.................................1
DDA Feature ..............................1
How do I ...?.................................2
Quick Hits.......................................6
Contact information ...........
PGCG
Pretty Good Consulting Group
Got a problem?  We create solutions.
actional information with
tional marketing.
EOM News & Views
Issue 12, May 2009
Page [ 58 ]
[ 58 ]
Yes!!!!  Prior to the EOM 8.0 Transform Job feature you could have created a crude DDA parsing routine or used the Custom Job UCSVmap (see
/tools/UCSVmap directory on the release CD) to handle Excel data saved in comma delimited format.  Now there is a very slick way to transform the Excel
data into something much easier to process within the EOM DDA.  There is an even slicker way to populate a Form File Utility form...
First, we need to start with the Excel spreadsheet.  Suppose that your application produces an Excel spreadsheet where each row contains information
required to print a check.  For example:
EOM cannot process the Excel file (.xls) directly, so you simply Save As... using type CSV (Comma delimited (*.csv)) into a directory.  If there is a Directory
Monitor configured to watch that directory then EOM will automatically process the file, if not then you could submit the file with a manual Create Print
Job from the EOM client.
All the magic from here on happens via EOM.  The data flow is as follows:
The Transform Job requires a Transform Attribute.  The Transform Attribute property "Text to XML Conversion" allows for non-XML input files to be converted
into XML directly by EOM, in this case we will use the "Delimited" value and a comma as the "Delimiter character string".  So, behind the scene EOM
converts the comma delimited file into an XML file before invoking the XML Processing Directive(s).  The Transform Attribute is defined with a "Source"
value that identifies the proper XML Processing Directive(s).  The "only" thing the XML Processing Directive does for this example is convert the XML file
into a text file.  It does this based on the XSLT style sheet file defined in the XML Processing Directive.  Finally, EOM then submits the text file to the File
Mask because the "Action" property is set to "Create new file and apply it to the File Mask".   From there, the File Mask identifies the incoming file and
submits a Print Job using a Print Attribute that references a DDA to place the data.  Quite Easily Done.            But wait a minute, .... how exactly are
these things configured?
How do I ...?
ConvertCSVToText
Source:              XMLToTextLoopback
Text to XML conversion:  Delimited
Delimiter character string:  ,
Root node name: 
CheckDataDemo
Child node names:   CheckRecord
Element names:  
{blank}
XMLToTextLoopback
Source:    XMLToTextLoopback
Action:    Create new file and apply it to File Mask
Condition:   true()
Generate file and loop back
Transform Result:     
TXT
Transformation file name:    XMLToText1.xsl
User Tag 1: 
XMLLoopback
XMLLoopback
File Selection Criteria
User Tag 01 EQ  XMLLoopback
Transport Type EQ Loopback
Job Creation
Print Job:
Print Attribute:   CSVToXMLToDFF
Printer: 
PDF1
EOM News & Views
Issue 12, May 2009
Page [ 59 ]
[ 59 ]
The XSL takes the generated XML file and creates a text file where each value is on a separate line. The XML, XSL and result TXT  are as follows:
<xsl:stylesheet version="2.0" encoding="utf-16"  ...
<xsl:output method="text" version="1.0" />
<xsl:template match="*" >
<xsl:apply-templates select="*" />
</xsl:template>
<!-- Matches every entry and copies each one to the result file. -->
<xsl:template match="*">
<xsl:choose>
<xsl:when test="count(child::*) > 0">
<xsl:value-of select="name()" />
<xsl:text>
</xsl:text>
<xsl:apply-templates select="*" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="name()" />
<xsl:text>=</xsl:text>
<xsl:text>"</xsl:text>
<xsl:value-of select="."/>
<xsl:text>"</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="position() != last()">
<xsl:text>
</xsl:text>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="utf-8" ?>
- <CheckDemoData>
- <CheckRecord>
<CheckNumber>12340001</CheckNumber>
<CheckDate>05/19/09</CheckDate>
<PayeeName>HOMER HAGERSNASTY</PayeeName>
<PayeeAddr1>2134 PITH WAY</PayeeAddr1>
<PayeeCityStateZip>ROSEVILLE MN 55041-2345</PayeeCityStateZip>
<ClaimForm>700076</ClaimForm>
<PayAmount>14144.48</PayAmount>
<Gross>25000.00</Gross>
<FedWithholding>6750.00</FedWithholding>
<StateWithholding>1875.00</StateWithholding>
<ChildSupport>625.86</ChildSupport>
<Restitution>1604.66</Restitution>
</CheckRecord>
- <CheckRecord>
<CheckNumber>12340002</CheckNumber>
<CheckDate>05/19/09</CheckDate>
<PayeeName>SALLY PHONEBONE</PayeeName>
<PayeeAddr1>23 POLYNOMIAL BLVD</PayeeAddr1>
<PayeeCityStateZip>OPHIR AL 43241-2345</PayeeCityStateZip>
<ClaimForm>700076</ClaimForm>
<PayAmount>14143.55</PayAmount>
</CheckRecord>
</CheckDemoData>
CheckDemoData
CheckRecord
CheckNumber="12340001"
CheckDate="05/19/09"
PayeeName="HOMER HAGERSNASTY"
PayeeAddr1="2134 PITH WAY"
PayeeCityStateZip=" ROSEVILLE MN   55041-2345"
ClaimForm="700076"
PayAmount="14144.48"
Gross="25000.00"
FedWithholding="6750.00"
StateWithholding="1875.00"
ChildSupport="625.86"
Restitution="1604.66"
CheckRecord
CheckNumber="12340002"
CheckDate="05/19/09"
PayeeName="SALLY PHONEBONE"
PayeeAddr1="23 POLYNOMIAL BLVD"
PayeeCityStateZip="OPHIR AL   43241-2345"
ClaimForm="700076"
PayAmount="14143.55"
EOM News & Views
Issue 12, May 2009
Page [ 60 ]
[ 60 ]
Now it is just a matter of writing a DDA that looks for the keywords and parses values from the text lines.  Then, the DDA can place the data on the page
anywhere you like.   Once again, Quite Easily Done.           But wait a minute, .... Is there a really slick way to place this data on a form?
Yes!!! The Form File Utility has a little known feature that allows the designer to open a comma separated file and then drag & drop from that file onto
the canvas of the form.  Here is what you need to do:
Ÿ If not previously done, locate the Form File Utility initialization file (FFU.INI) and add the string "ShowCSVMenu=1" under the "[Flags]" section of
the initialization file.  Run the Form File Utility program and you will now see a "File / Open Text Template …" menu selection.
Ÿ (optional) Use the menu selection "Edit / Load a Metafile" to add an electronic form designed in Word to the Form File Utility file.
Ÿ Using the "File / Open Text Template …" menu selection, open the original comma delimited saved from Excel.
Ÿ Select one field at a time from the Text Template dialog box and then drag & drop onto the Form File Utility form.
Ÿ You can then specify specific field properties as desired by selecting the individual fields and modifying the Property Inspector properties.
Ÿ Save the Form File Utility file (.DFF) in a directory of your choice or the Enterprise Output Manager /prntctrl directory.
Documents you may be interested
Documents you may be interested