pdf viewer control in asp net c# : Add image to pdf reader Library control class asp.net azure winforms ajax pdfblog_250-part2424

PDF Blog
AcroT
E
X.Net
AcroT
E
XPDF Blog
Creating Acrobat Form Fields using JavaScript
D. P.Story
The source file for thisAcroT
E
X PDF Blogisthebatch sequence
Insert NavigationButtons,describedinSection1.4,page13.
Copyright©2009dpstory@acrotex.net
http://www.acrotex.net
AcroT
E
XPDF Blog#25
Published:February 15,2009
Add image to pdf reader - insert images into PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sample C# code to add image, picture, logo or digital photo into PDF document page using PDF page editor control
add picture to pdf in preview; add image pdf document
Add image to pdf reader - VB.NET PDF insert image library: insert images into PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide VB.NET Programmers How to Add Images in PDF Document
how to add image to pdf in acrobat; add image to pdf online
PDF Blog
Table of Contents
1 Creating AcrobatFormFieldsusing JavaScript
3
1.1 Doc.addFieldandField.setAction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Creating Fields andActions by UserInteraction . . . . . . . . . . . . . . . . . . . . 5
• Text Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
• PushButtons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
• Check Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
• RadioButtons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
• List and ComboBoxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3 Creating Fields usingaBatchSequence . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4 Executing ascript through an FDF . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
C# Imaging - Scan Barcode Image in C#.NET
RasterEdge Barcode Reader DLL add-in enables developers to add barcode image recognition & types, such as Code 128, EAN-13, QR Code, PDF-417, etc.
add multiple jpg to pdf; add a jpeg to a pdf
XImage.Barcode Scanner for .NET, Read, Scan and Recognize barcode
VB.NET Write: Add Image to PDF; VB.NET Protect: Add Password to VB.NET Annotate: PDF Markup & Drawing. XDoc.Word for C#; XDoc.Excel for C#; XDoc.PowerPoint for
add picture to pdf reader; adding images to pdf forms
PDF Blog
3
1.CreatingAcrobatFormFieldsusingJavaScript
The dynamic creation of form fields is somewhat limited, in my opinion. The twomethods for
creating Acrobat forms and actions are
Doc.addField
and
Field.setAction
. From the
quick bar of the JavaScript for Acrobat API Reference, we see that the former method requires
Form Reader Rights (it will work in Acrobat, but not in AR unless the additional Reader rights
areavailable), the latteris neveravailable in AR (but, again, is available in Acrobat).
Iconsider these two methods part of document development. The document author, or de-
veloper, who uses some flavor of Acrobat (Pro/Pro Extended), might use these methods in the
process of constructingadocument tobe distributed.
Thereare threestepsto createaform field:
1. Create thefieldusingDoc.addField
,and acquirethereturnedField object.
2. Set thepropertiesof the fieldusingthe Field objectfrom step1.
3. Set any JavaScriptactions desiredusing
Field.setAction
.
Naturally enough,wecansetpropertiesandactions in any order wewish.
1.1.Doc.addField and Field.setAction
Thesyntax for
Doc.addField
is
var oField=this.addField({
cName: string,
cFieldType: text | button | combobox | listbox |
checkbox | radiobutton | signature,
nPageNum: number,
oCoords: [ x_ul, y_ul, x_lr, y_lr ]
})
where,
cName
is astring that is usedfor thenameof the field.
cFieldType
is astring thatdefines thefield typethat is tobe created.
nPageNum
is thepagenumberthe fieldistobecreatedon. Thepagenumberis 0-based,
oCoords
isanarray ofcoordinates thatdefinetheboundingrectangleofthefield. These
coordinates are given in Rotated User Space.
1
In rotated user space, the origin is always
the lower leftcorner of thecropbox.
1
ForanexplanationofRotatedUserSpace,seethearticleAutomatingPlacementofAnnotations,byThomParker,
atAcrobatUser.com,theAdobe AcrobatUserCommunity.
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
Get image information, such as its location, zonal information, metadata, and so on. Able to edit, add, delete, move, and output PDF document image.
add image to pdf file; how to add an image to a pdf in acrobat
VB.NET PDF Password Library: add, remove, edit PDF file password
VB: Add Password to PDF with Permission Settings Applied. This VB.NET example shows how to add PDF file password with access permission setting.
how to add a photo to a pdf document; add image to pdf preview
PDF Blog
CreatingAcrobat FormFieldsusingJavaScript
4
Doc.addField
returns theFieldobject of thenewly createdfield. The returnedobject should
beassigned toaJavaScriptvariable,
oField
,in theabovespecification.
Because we must specify the coordinates of the bounding rectangle, placing a field becomes
aproblem with this method, There are two strategies I have used to set the location of a field
createdusing
Doc.addField
:
1. Place thefieldor fields ina fixed location, perhapsrelative to one of the pagecorners, in
aspace that isknown tobewhitespace(nocontentinthat region).
2. Placethe fieldor fieldsinalocation relativetoanotherfield that isalreadythere.
Unless youare100% sure theend-userwillbeusingAcrobat, thenextquestioniswhendoyou
used
Doc.addField
?Iproposethefollowing:
1. You can create fields dynamically by having the user interact with a document (pushing
abutton, or entering text in a text field); however, this method requires the end user to
haveAcrobat.
2.
Doc.addField
inabatch sequence
3. Execute
Doc.addField
in theJavaScript Debugger window
4. Place the script in an FDF that contains the JavaScript that will be executed when it is
imported. This isthemethod Iuse, and is the onemost convenient to my own workflow.
My workflow is to create content using the markup language L
A
T
E
X, convert the natural
output format (DVI) toPostScript, andfinally, distill the PostScript. When the distiller has
finished generating the PDF, and the file is opened in Acrobat for the first time, the FDF
(filledwithJavaScript) isimportedandexecuted. BothcontentandJavaScriptarewritten
intheL
A
T
E
Xsource file.
Inthis article,I’llattempttoillustrate thesefour methods, well,maybeIwon’t botherwith(3).
ToassignJavaScriptactionstoafield—evenafieldnotnecessarilycreatedby
Doc.addField
use
Field.setAction
.The parametersforthis methodaregiven below.
Field.setAction({
cTrigger: MouseUp | MouseDown | MouseEnter | MouseExit |
OnFocus | OnBlur | Keystroke | Validate | Calculate | Format,
cScript: string
})
The triggers are the same ones discussed inAcroT
E
XBlog#20(mouse,focus,blurtriggersdis-
cussed);AcroT
E
XBlog#21(discussestheeventchain); AcroT
E
XBlog #22(keystrokeandformat
discussed);AcroT
E
XBlog#23(validatediscussed);and AcroT
E
XBlog#24(calculatediscussed).
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
DLLs for PDF Image Extraction in VB.NET. In order to run the sample code, the following steps would be necessary. Add necessary references:
add jpg to pdf form; how to add a picture to a pdf file
C# PDF Password Library: add, remove, edit PDF file password in C#
C# Sample Code: Add Password to PDF with Permission Settings Applied in C#.NET. This example shows how to add PDF file password with access permission setting.
add photo to pdf file; add image to pdf acrobat reader
PDF Blog
CreatingAcrobat FormFieldsusingJavaScript
5
The parameter
cScript
is used to define the JavaScript action, because
cScript
is a string,
this leads to problems in creating long or complex scripts. It’s best to simply call a JavaScript
function already definedatthedocumentlevel.
Limitations:
Field.setAction
cannotgetanaction,itcanonlysetanaction. Itwilloverwrite
an alreadyexistentaction;consequently,you cannot append code toexistent code.
1.2.CreatingFieldsand ActionsbyUserInteraction
This is the case that is of limited value in that the user needs to have Acrobat, but it is the one
thatis most fun!
In thefollowing examples, we drawliberally on the techniques illustratedin AcroT
E
XBlog #12–
AcroT
E
XBlog #24. For theexamples in this section towork, thereader, that you, must not have
Reader,that’s not you. Theexampleswill work for Acrobat users.
•TextFields
We createatext field,andamultiline text field inthenext twoexamples.
Example1.1.CreatingatextfieldPositionthetextfieldrelativetothelocationofthebutton.
Belowis theverbatimlistingof thepushbuttonaction.
1
var g=this.getField("txt1-1-1");
2
if ( g==null ) {
3
var f=event.target;
4
var myRect=f.rect;
5
var deltaX=6;
6
var widthTxt=72*1.5;
7
myRect[0]=myRect[2]+deltaX;
8
myRect[2]=myRect[0]+widthTxt;
9
var f=this.addField("txt1-1-1", "text", this.pageNum, myRect);
10
f.delay=true;
11
f.strokeColor=color.black;
12
f.textColor=color.green;
13
f.delay=false;
14
}
Code Comments: First we see if the field has already been created (lines (1) and (2)), if no,
we create it. We get the Field object of the button (3), and its bounding rectangle (4). We’ll
move over 6 points horizontally (5), and set the field width (6). We’ll make the field the same
height as the button. Inlines (7) and(8) wecalculate the newx-coordinates. Finally, we create
Create
C# PDF Sticky Note Library: add, delete, update PDF note in C#.net
Evaluation library and components enable users to annotate PDF without adobe PDF reader control installed. Able to add notes to PDF using C# source code in
pdf insert image; how to add a jpeg to a pdf file
C# Create PDF from images Library to convert Jpeg, png images to
List<Bitmap> images = new List<Bitmap>(); images.Add(new Bitmap(Program.RootPath + "\\" 1.gif")); / Build a PDF document with GIF image.
add photo pdf; adding an image to a pdf
PDF Blog
CreatingAcrobat FormFieldsusingJavaScript
6
the text field using
Doc.addField
,and the array we manipulated,
myRect
,as the rectangle
argument. Webeginningsetting properties delayingthe redrawingof thefield(10), wesetour
desiredproperties (11)–(12), thenallowthe fieldto beredrawn, line (13).
Note that the parameters for addField are entered in traditional functional form; alternatively,
wecould haveusedthe objectliteralmethod of specifying theparameters,like so,
1
var f=this.addField({
2
cName: "txt1-1-1", cFieldType: "text",
3
nPageNum: this.pageNum, oCoords: myRect
4
});
The advantage with this method is that the parameters canbelisted in any order, and if there
areoptionalparameters,theycanbeincluded or not inthe object.
Afieldcanberemovedusingthe
Doc.removeField
method,by passingthefieldnameasan
argument. Let’s remove thefield justcreated above.
Example1.2.RemoveafieldusingField.removeField
The
MouseUp
codefor thisbutton is
this.removeField("txt1-1-1");
Example1.3.CreatingamultilineTextField.Positionthetextfieldrelativetothelocationof
thebutton.
Belowis theverbatimlistingof thepushbuttonaction.
1
var g=this.getField("txt1-3-1");
2
if ( g==null ) {
3
var f=event.target;
4
var myRect=f.rect;
5
var deltaX=6;
6
var widthTxt=72*3;
7
var heightTxt=5*12;
8
myRect[0]=myRect[2]+deltaX;
9
myRect[2]=myRect[0]+widthTxt;
10
myRect[1]=myRect[3]+heightTxt;
11
var f=this.addField("txt1-3-1", "text", this.pageNum, myRect);
12
f.delay=true;
13
f.multiline=true;
14
f.strokeColor=color.red;
15
f.value="Ooops! I messed up! AcroTeX is on the Rocks!";
16
f.delay=false;
17
} else this.removeField("txt1-3-1");
Remove
Create
PDF Blog
CreatingAcrobat FormFieldsusingJavaScript
7
CodeComments: This exampleillustrates thedangers of dynamically creatingfields. Youmust
have a detailed knowledge of the surrounding content. Ican correct this error by subtracting
afixed amount from the y-coordinates. This code is the same as theExample1.1, page 5, the
differencesinline(8), theintroductionof aheight; line(11), thecalculationof they-coordinates
ofthetextfield;line(14),settingthe
Field.multiline
propertyto
true
;andline(16),giving
thefieldafunny value.
There are few examples where a dynamic creation of afield through user interaction. Indeed,
all this can be accomplished by using static fields (created by the user interface) and making
themhidden. Theremaybeseveralfieldsoverlayingeachother, theoneyouneedcanbemade
visible, thethen madehidden again.
•PushButtons
Push buttons werefully discussedinAcroT
E
XBlog#14.
The
Field.setAction
method has not been illustrated yet. The push button is an ideal
choice for creating actions.
Example1.4.CreatingaPushButtonwithAction.Placethebuttoninthebottommarginof
this page, centeredhorizontally.
Belowistheverbatimlistingof thepushbuttonaction. Weassumethereisaoneinchmarginat
thebottomofthepagetoinsertthebuttonin. Weuse
Doc.getPageBox
togetthedimensions
of thecrop box,the one usedby all Acrobat fields.
1
var g=this.getField("pb1-4-1");
2
if ( g==null ) {
3
var aRect=this.getPageBox("Crop", this.pageNum);r
4
var widthPage=aRect[2]-aRect[0];
5
var xcoordCenter=widthPage/2;
6
var widthBtn=32;
7
var myRect= new Array();
8
myRect[0]=xcoordCenter-(widthBtn)/2;
9
myRect[2]=xcoordCenter+(widthBtn)/2;
10
myRect[3]=72*.5;
11
myRect[1]=myRect[3]+11;
12
var f=this.addField("pb1-4-1", "button", this.pageNum, myRect);
13
f.delay=true;
14
f.strokeColor=color.black;
15
f.textColor=color.red;
16
f.fillColor=color.ltGray
17
f.highlight=highlight.p;
Create
Create
PDF Blog
CreatingAcrobat FormFieldsusingJavaScript
8
18
f.borderStyle=border.b;
19
f.textSize=0;
20
f.buttonSetCaption("Push", 0);
21
f.buttonSetCaption("Me", 2);
22
f.buttonSetCaption("Now!", 1);
23
f.delay=false;
24
var cMsg="Hello World! Have I ever told you that \\"AcroTeX Rocks!\\"?"
25
f.setAction("MouseUp", "app.alert(cMsg)");
26
} else this.removeField("pb1-4-1");
•Check Boxes
We createacheck box, firstdiscussedinAcroT
E
XBlog#15.
Example1.5.CreatingacheckboxusingaddField.
Comments:
•The first two check boxes have the same names, they are widgets with terminal name
cb1-5-1
. The export values of the widgets are different. You’ll note they behave like
radiobuttons, except youcan uncheck the field. When you query the field, the value of
the fieldisoneof three values,
Yes1
,
Yes2
,or
Off
.
•The second two fields have the same name (hence, are widgets with terminal name
cb1-5-2
)andthesameexport values;thesetwowork in tandem.
•The last twohave different names—a standard setup—and, therefore, independently of
eachother (andfrom the first four check boxes).
Theverbatim listingof the pushbuttonactionis
1
var g=this.getField("cb1-5-1");
2
if ( g==null ) {
3
var myCBs= [
4
["cb1-5-1",["Yes1","Yes2"]],["cb1-5-1",["Yes1","Yes2"]],
5
["cb1-5-2",["Yes1","Yes1"]],["cb1-5-2",["Yes1","Yes1"]],
6
["cb1-5-3",["Yes1"]],["cb1-5-4",["Yes2"]]
7
];
8
var f=event.target;
9
var myRect=f.rect;
10
var deltaX=6;
11
var widthCB=13;
12
var x_l=myRect[2]+deltaX;
13
for (var i=0; i<myCBs.length; i++) {
14
myRect[0]=x_l;
Create
PDF Blog
CreatingAcrobat FormFieldsusingJavaScript
9
15
myRect[2]=myRect[0]+widthCB;
16
x_l=myRect[2]+deltaX;
17
var f=this.addField(myCBs[i][0], "checkbox", this.pageNum, myRect);
18
f.delay=true;
19
f.exportValues=myCBs[i][1];
20
f.strokeColor=color.black;
21
f.textColor=color.red;
22
f.delay=false;
23
}
24
} else for (var i=0; i<myCBs.length; i++) this.removeField(myCBs[i][0]);
Question:Howdoyouattachactionstoeachofthesecheckboxes.Thefirsttwoarewidgets,
the second two are widgets, the third two are fields with different names. Clickhere for the
answer,but only afteryouhavemeditatedonthesolution.
Note:Anactioncanberemovedbyoverwritingthecurrentaction;ifyoupasstheemptystring
asscript, youremovetheaction, and replace it withnoaction,forexample,
Field.setAction("MouseUp","");
removes the currentaction
MouseUp
actionof thereferencedfield.
•Radio Buttons
Whencreatingasetofradiobuttonsbelongingtothesamegroup,usethesamenameforeach.
Radio buttons alsohave aproperty
Field.radiosInUnison
:If
false
(the default), if aset
of radio buttons have the same name and export value, they behave in a mutually exclusive
fashion, like HTML radio buttons; if
true
,a set of radio buttons with same name and export
valueturnon and off inunison (this was thebehaviorseeninAcrobat 4.0).
In the example below, we illustrate radio button fields, with
Field.radiosInUnison
set to
false
,thento
true
.
Example1.6.CreatingRadioButtons.
Field.radiosInUnisonsetto false.
Thefirsttworadiobuttonshasthesameexportvalue(
Yes1
),yetthefieldbehavesinamutually
exclusionfashion.
Theverbatim code forthepushbutton is
1
var rbfGroupName="rbf1-6";
2
var g=this.getField(rbfGroupName);
3
if ( g==null ) {
Create
PDF Blog
CreatingAcrobat FormFieldsusingJavaScript
10
4
var aEVs= ["Yes1","Yes1","Yes2","Yes3","Yes4"];
5
var f=event.target, myRect=f.rect;
6
var deltaX=6, widthRBF=13;
7
var x_l=myRect[2]+deltaX;
8
myRect[0]=x_l;
9
myRect[2]=myRect[0]+widthRBF;
10
var rbf=this.addField(rbfGroupName,"radiobutton",this.pageNum,myRect);
11
for (var i=1; i<aEVs.length; i++) {
12
x_l=myRect[2]+deltaX;
13
myRect[0]=x_l;
14
myRect[2]=myRect[0]+widthRBF;
15
this.addField(rbfGroupName,"radiobutton",this.pageNum,myRect);
16
}
17
f.delay=true;
18
rbf.strokeColor=color.black;
19
rbf.textColor=color.red;
20
f.delay=false;
21
rbf.exportValues=aEVs;
22
} else this.removeField(rbfGroupName);
Code Comments: Note that we acquire the field object of the radio button field in line (12),
while wedon’t get the field object inline (17). (Why?) Inlines (20) and(21), we set properties
of theradiobuttons. These properties arewidget properties, butthe object is afield objectfor
the whole group; so setting them with a field object representing the group, sets all widgets
(reviewtable presented in the introduction totheFieldobjectinthe JavaScriptforAcrobatAPI
Reference. Finally,inline(23) we set theexportvalues of thebuttons inthegroup.
Field.radiosInUnisonsetto true.
Thefirsttworadiobuttonshasthesameexportvalue(
Yes1
),yetthefieldbehavesinamutually
exclusionfashion. Notethedifference inthe behavior of thefirst twobuttons in this field, and
the previousradiobuttonfield. Setting
Field.radiosInUnison
to
true
whenyouwant to
transferresultsof aradiobuttonfieldfrom one page toanother,for example.
The verbatim code for the push button is same as above, with a few exceptions, highlighted
below.
1
...
2
var rbf=this.addField(rbfGroupName,"radiobutton",this.pageNum,myRect);
3
...
4
rbf.radiosInUnison=true;
5
rbf.exportValues=aEVs;
6
} else this.removeField(rbfGroupName);
Code Comments: The new line is highlighted in red, we set
Field.radiosInUnison
to
true
.
Create
Documents you may be interested
Documents you may be interested