pdf library c# free : Change font size pdf form reader SDK software API .net windows html sharepoint PDFlib-7-tutorial15-part1846

7.2  Multi-Line Textflows 151
<fontname=ZapfDingbats encoding=builtin textlen=1>Õ<fontname=Helvetica encoding=winansi>
Instead of numerically addressing the character we can refer to its glyph name, using 
PDFlib’s glyph name reference syntax (see Section 4.6.2, »Character References and 
Glyph Name References«, page 89) which requires unicode encoding. Glyph name pro-
cessing must be enabled with the charref option. The length of the text fragment is 7 
characters since the complete contents of the glyph name reference are counted. In Uni-
code-aware language bindings the following example will do the trick:
<charref fontname=ZapfDingbats encoding=unicode textlen=7>&.a161;<fontname=Helvetica 
encoding=winansi>
In non-Unicode-aware language bindings we must set the text format to bytes since oth-
erwise two bytes per character would be required for unicode encoding:
<charref fontname=ZapfDingbats encoding=unicode textformat=bytes textlen=7>&.a161; 
<fontname=Helvetica encoding=winansi>
7.2.7 Hyphenation
PDFlib does not automatically hyphenate text, but can break words at hyphenation op-
portunities which are explicitly marked in the text by soft hyphen characters. The soft 
hyphen character is at position U+00AD in Unicode, but several methods are available 
for specifying the soft hyphen in non-Unicode environments:
>In all cp1250 – cp1258 (including winansi) and iso8859-1 – iso8859-16 encodings the soft 
hyphen is at decimal 173, octal 255, or hexadecimal 0xAD.
>In ebcdic encoding the soft hyphen is at decimal 202, octal 312, or hexadecimal 0xCA.
>A character entity reference can be used if an encoding does not contain the soft hy-
phen character (e.g. macroman): &shy;
U+002D will be used as hyphenation character. In addition to breaking opportunities 
designated by soft hyphens, words can be forcefully hyphenated in extreme cases when 
other methods of adjustment, such as changing the word spacing or shrinking text, are 
not possible.
Justified text with or without hyphen characters. In the following example we will 
print the following text with justified alignment. The text contains soft hyphen charac-
ters (visualized here as dashes):
Our paper planes are the ideal way of pas
sing the time. We offer revolu
tionary 
brand new dev
elop
ments of the tradi
tional common paper planes. If your lesson, 
confe
rence, or lecture turn out to be deadly boring, you can have a wonder
ful time 
with our planes. All our models are folded from one paper sheet. They are exclu
sively 
folded without using any adhe
sive. Several models are equip
ped with a folded 
landing gear enab
ling a safe landing on the intended loca
tion provided that you 
have aimed well. Other models are able to fly loops or cover long dist
ances. Let them 
start from a vista point in the mount
ains and see where they touch the ground.
Figure 7.19 shows the generated text output with default settings for justified text. It 
looks perfect since the conditions are optimal: the fitbox is wide enough, and there are 
explicit break opportunities specified by the soft hyphen characters. As you can see in 
Figure 7.20, the output looks okay even without explicit soft hyphens. The option list in 
both cases looks as follows:
Change font size pdf form reader - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
how to fill in a pdf form in reader; extract data from pdf file to excel
Change font size pdf form reader - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
c# read pdf form fields; how to fill pdf form in reader
152
Chapter 7:  Formatting Features
fontname=Helvetica fontsize=9 encoding=winansi alignment=justify
7.2.8 Controlling the Linebreak Algorithm
PDFlib implements a sophisticated line-breaking algorithm.
1
Table 7.1 lists Textflow op-
tions which control the line-breaking algorithm.
Line-breaking rules. When a word or other sequence of text surrounded by space char-
acters doesn’t fully fit into a line, it must be moved to the next line. In this situation the 
line-breaking algorithm decides after which characters a line break is possible.
For example, a formula such as  -12+235/8*45 will never be broken, while the string 
PDF-345+LIBRARY  may be broken to the next line at the minus character. If the text 
contains soft hyphen characters it can also be broken after such a character.
For parentheses and quotation marks it depends on whether we have an opening or 
closing character: opening parentheses and quotations marks do not offer any break 
opportunity. In order to find out whether a quotation mark starts or ends a sequence, 
pairs of quotation marks are examined.
An inline option list generally does not create a line break opportunity in order to al-
low option changes within words. However, when an option list is surrounded by space 
characters there is a line break opportunity at the beginning of the option list. If a line 
break occurs at the option list and alignment=justify, the spaces preceding the option list 
will be discarded. The spaces after the option list will be retained, and will appear at the 
beginning of the next line.
Preventing linebreaks. You can use the charclass option to prevent Textflow from 
breaking a line after specific characters. For example, the following option will prevent 
line breaks immediately after the / character:
charclass={letter /}
In order to prevent a sequence of text from being broken across lines you can bracket it 
with avoidbreak...noavoidbreak.
1. For interested users we’ll note that PDFlib honors the recommendations in »Unicode Standard Annex #14: Line Breaking 
Properties« (see www.unicode.org/reports/tr14). Combining marks are not taken into account.
Our paper planes are the ideal way of
passing  the  time.  We  offer  revolu-
tionary brand new developments of the
traditional  common  paper  planes.  If
your lesson, conference, or lecture turn
out to be deadly boring, you can have
a wonderful time with our planes. All
our models are folded from one paper
sheet.  They  are  exclusively  folded
without  using  any  adhesive.  Several
models  are  equipped  with  a  folded
landing gear enabling a safe landing
on the intended location provided that
you have aimed well. Other models are
able  to  fly  loops  or  cover long dist-
ances. Let them start from a vista point
in the mountains and see where they
touch the ground.
Our paper planes are the ideal way of
passing the time. We offer revolutionary
brand  new  developments  of  the
traditional  common  paper  planes.  If
your lesson, conference, or lecture turn
out to be deadly boring, you can have
a wonderful time with our planes. All
our models are folded from one paper
sheet.  They  are  exclusively  folded
without using  any  adhesive.  Several
models  are  equipped  with  a  folded
landing gear enabling a safe landing
on the intended location provided that
you have aimed well. Other models are
able  to  fly  loops  or  cover  long
distances. Let them start from a vista
point in the mountains and see where
they touch the ground.
Fig. 7.19
Justified text with soft hyphen characters, 
using default settings and a wide fitbox
Fig. 7.20
Justified text without soft hyphens, using 
default settings and a wide fitbox.
C# PDF File Compress Library: Compress reduce PDF size in C#.net
can help to reduce PDF file size effectively. RasterEdge.Imaging.Font.dll. ops.MonochromeImageOptions.TargetResolution = 150F; // to change image compression
extract data from pdf; extract data from pdf form fields
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
can help to reduce PDF file size effectively Reduce font resources: Font resources will also take up too TargetResolution = 150.0F 'to change image compression
using pdf forms to collect data; extract table data from pdf
7.2  Multi-Line Textflows 153
Cookbook A full code sample can be found in the Cookbook topic text_output/avoid_linebreaking.
Table 7.1 Options for controlling the line-breaking algorithm
option
explanation
adjust-
method
(Keyword) The method used to adjust a line when a text portion doesn’t fit into a line after compressing 
or expanding the distance between words subject to the limits specified by the minspacing and max-
spacing options. Default: auto
auto
The following methods are applied in order: shrink, spread, nofit, split.
clip
Same as nofit (see below), except that the long part at the right edge of the fitbox (taking 
into account the rightindent option) will be clipped.
nofit
The last word will be moved to the next line provided the remaining (short) line will not be 
shorter than the percentage specified in the nofitlimit option. Even justified paragraphs 
will look slightly ragged in this case.
shrink
If a word doesn’t fit in the line the text will be compressed subject to the shrinklimit option 
until the word fits. If it still doesn’t fit the nofit method will be applied.
split
The last word will not be moved to the next line, but will forcefully be hyphenated. For text 
fonts a hyphen character will be inserted, but not for symbol fonts.
spread
The last word will be moved to the next line and the remaining (short) line will be justified by 
increasing the distance between characters in a word, subject to the spreadlimit option. If 
justification still cannot be achieved the nofit method will be applied.
avoidbreak
(Boolean) If true, avoid any line breaks until avoidbreak is reset to false. Default: false
charclass
(List of pairs, where the first element in each pair is a keyword, and the second element is either a unichar 
or a list of unichars) The specified unichars will be classified by the specified keyword to determine the 
line breaking behaviour of those character(s):
letter
behave like a letter (e.g. a B)
punct
behave like a punctuation character (e.g. + / ; : )
open
behave like an open parenthesis (e.g. [ )
close
behave like a close parenthesis  (e.g. ] )
default
reset all character classes to PDFlib’s builtin defaults
Example: charclass={ close »  open «  letter {/ : =} punct & }
hyphenchar
(Unichar or keyword) Unicode value of the character which replaces a soft hyphen at line breaks. The val-
ue 0 and the keyword none completely suppress hyphens. Default: U+00AD (SOFT HYPHEN) if available 
in the font, U+002D (HYPHEN-MINUS) otherwise
maxspacing
minspacing
(Float or percentage) Specifies the maximum or minimum distance between words (in user coordinates, 
or as a percentage of the width of the space character). The calculated word spacing is limited by the pro-
vided values (but the wordspacing option will still be added). Defaults: minspacing=50%, 
maxspacing=500%
nofitlimit
(Float or percentage) Lower limit for the length of a line with the nofit method (in user coordinates or as 
a percentage of the width of the fitbox). Default: 75%.
shrinklimit
(Percentage) Lower limit for compressing text with the shrink method; the calculated shrinking factor is 
limited by the provided value, but will be multiplied with the value of the horizscaling option. Default: 
85%
spreadlimit
(Float or percentage) Upper limit for the distance between two characters for the spread method (in user 
coordinates or as a percentage of the font size); the calculated character distance will be added to the 
value of the charspacing option. Default: 0
C# PDF insert text Library: insert text into PDF content in C#.net
without adobe reader installed in ASP.NET. Powerful .NET PDF edit control allows modify existing scanned PDF text. Ability to change text font, color, size and
pdf form save in reader; html form output to pdf
C# PDF Annotate Library: Draw, edit PDF annotation, markups in C#.
reader installed. Support to add text, text box, text field and crop marks to PDF document. Able to edit and change PDF annotation properties such as font size
extracting data from pdf to excel; how to save fillable pdf form in reader
154
Chapter 7:  Formatting Features
Formatting CJK text. The textflow engine is prepared to deal with CJK text, and prop-
erly treats CJK characters as ideographic glyphs as per the Unicode standard. As a result, 
CJK text will never be hyphenated. For improved formatting the following options are 
recommended when using Textflow with CJK text; they will disable hyphenation for in-
serted Latin text and create evenly spaced text output:
hyphenchar=none
alignment=justify
shrinklimit=100%
spreadlimit=100%
Vertical writing mode is not supported in Textflow.
Justified text in a narrow fitbox. The narrower the fitbox, the more important are the 
options for controlling justified text. Figure 7.21 demonstrates the results of the various 
methods for justifying text in a narrow fitbox. The option settings in Figure 7.21 are ba-
sically okay, with the exception of maxspacing which provides a rather large distance be-
tween words. However, it is recommended to keep this for narrow fitboxes since other-
wise the ugly forced hyphenation caused by the split method will occur more often.
If the fitbox is so narrow that occasionally forced hyphenations occur, you should 
consider inserting soft hyphens, or modify the options which control justified text.
Option shrinklimit for justified text. The most visually pleasing solution is to reduce 
the shrinklimit option which specifies a lower limit for the shrinking factor applied by 
the shrink method. Figure 7.22a shows how to avoid forced hyphenation by compressing 
text down to shrinklimit=50%.
Our paper planes
are the ideal way of
passingthe time.We
offer revolutionary
brand new develop-
ments of the traditional
common paper planes.
If your lesson, conf-
erence, or lecture
turn out to be deadly
boring, you canhave
a wonderful time
with our planes. All
decrease the distance between words (minspacing option)
compress the line (shrink method, shrinklimit option)
force hyphenation (split method)
increase the distance between words (spread method, maxspacing option)
Fig. 7.21  Justified text in a narrow fitbox with default settings
C# PDF Sticky Note Library: add, delete, update PDF note in C#.net
enable users to annotate PDF without adobe PDF reader control installed. Able to add notes to PDF using C# source Able to change font size in PDF comment box.
extract data from pdf table; make pdf form editable in reader
C# PDF Field Edit Library: insert, delete, update pdf form field
Able to add text field to specified PDF file position in C#.NET class. Support to change font size in PDF form. Able to delete form fields from adobe PDF file.
export pdf form data to excel; export excel to pdf form
7.2  Multi-Line Textflows 155
Fig. 7.22 Options for justified text in a narrow fitbox
Option spreadlimit for justified text. Expanding text, which is achieved by the spread 
method and controlled by the spreadlimit option, is another method for controlling line 
breaks. This unpleasing method should be rarely used, however. Figure 7.22b demon-
strates a very large maximum character distance of 5 units using spreadlimit=5.
Option nofitlimit for justified text. The nofitlimit option controls how small a line can 
get when the nofit method is applied. Reducing the default value of 75% is preferable to 
forced hyphenation when the fitbox is very narrow. Figure 7.22c shows the generated 
text output with a minimum text width of 50%.
7.2.9 Wrapping Text
The wrapping feature can be used to place graphics within a Textflow and wrap text 
around it, or to fill arbitrary polygonal shapes with text. By means of matchboxes, rect-
angles, or polygons you can specify wrapping areas for the Textflow. Alternatively, the 
Textflow can be placed within the specified areas instead of being wrapped around. This 
means that you can place Textflow in arbitrary shapes instead of only rectangles.
Wrapping text around an image with matchbox. In the first example we will place an 
image within the Textflow and run the text around the image. First the image is loaded 
and placed into the box at the desired position. To refer to the image by name later, we 
fit the image while defining a matchbox with the name img and a margin of 5 units with 
the option list matchbox={name=img margin=-5} as follows:
p.fit_image(image, 50, 35, 
"boxsize={80 46} fitmethod=meet position=center matchbox={name=img margin=-5}");
The Textflow is added. Then we place it using the wrap option with the image’s match-
box img as the area to run around as follows (see Figure 7.23):
Generated output
Option list for PDF_fit_textflow( )
a)
alignment=justify shrinklimit=50%
b)
alignment=justify spreadlimit=5
c)
alignment=justify nofitlimit=50
passing the time.We
offer revolutionary
brand new developments
of the traditional
common paper planes.
If your lesson, conference,
or lecture turn out to
Our paper planes
are the ideal way of
passing the time.We
offer revolutionary
b r a n d   n e w
developments of the
ments of the traditional
common paper planes.
If your lesson,
conference, or lecture
turn out to be deadly
boring, you can have
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
PDF document, keeps the elements (like images, tables and chats) of original PDF file and maintains the original text style (including font, size, color, links
export pdf data to excel; extract data from pdf to excel
Generate Barcodes in Web Image Viewer| Online Tutorials
Set barcode orientation and rotation angle; Change barcode image width & height; Colorize Set human-readable text font style, color, size; Resize barcode
extract pdf data to excel; extracting data from pdf forms to excel
156
Chapter 7:  Formatting Features
p.fit_textflow(textflow, left_x, left_y, right_x, right_y,
"wrap={usematchboxes={{img}}}");
Before placing the text you can fit more images using the same matchbox name. In this 
case the text will run around all images.
Cookbook A full code sample can be found in the Cookbook topic text_output/wrap_text_around_images.
Wrapping text around non-rectangular shapes. In addition to wrapping text around a 
rectangle specified by a matchbox you can define arbitrary polygons as wrapping 
shapes. For example, the following option list will wrap the text around a triangular 
shape (see Figure 7.24):
wrap={ polygons={ {50% 80%
20% 30%
80% 30%
50% 80%} } }
Note that the showborder=true option has been used to illustrate the margins of the 
shapes. The wrap option can contain multiple shapes. The following option list will 
wrap the text around two triangle shapes:
wrap={ polygons={ {50% 80%
20% 30%
80% 30%
50% 80%} 
{20% 90%
10% 70%
30% 70%
20% 90%} } }
Instead of percentages (relative coordinates within the fitbox) absolute coordinates on 
the page can be used.
Note It is recommended to set 
fixedleading=true
when using shapes with segments which are nei-
ther horizontally nor vertically oriented.
Cookbook A full code sample can be found in the Cookbook topic text_output/wrap_text_around_
polygons.
Filling non-rectangular shapes. The wrap feature can also be used to place the con-
tents of a Textflow in arbitrarily shaped areas. This is achieved with the addfitbox subop-
tion of the wrap option. Instead of wrapping the text around the specified shapes the 
text will be placed within one or more shapes. The following option list can be used to 
flow text into a rhombus shape, where the coordinates are provided as percentages of 
the fitbox rectangle (see Figure 7.25):
wrap={ addfitbox polygons={ {50% 100%
10% 50%
50% 0%
90% 50%
50% 100%} } }
Have a look at our new paper plane models! Our
paper planes are the ideal way of passing the time.
We  offer
revolutionary new
developme-
nts of the traditi-
onal  com-
mon paper planes.
If your les-
son, conference,
or  lecture
turn  out  to  be
deadly bor-
ing,  you  can
have  a  wonderful  time  with  our  planes.  All  our
models are folded from one paper sheet. They are
exclusively folded without using any adhesive.
Fig. 7.24
Wrapping text around a triangular shape
Fig. 7.23
Wrapping text around an image with matchbox
Our paper planes are the ideal way of passing the time.
We offer a lot of revolutionary brand-new developments
of  the  traditional  common
paper  planes.  If  your
lesson,  conference,  or
lecture  turn  out  to  be
deadly  boring,  you
can have a wonderful
time with our planes.
All our models are
folded  from one
paper sheet. They
are exclusively
folded without
using  any
adhesive. 
Several models are equipped with a folded landing gear.
enabling a safe landing on the intended location provided
that you have aimed well. Other models are able to fly
loops or cover long distances.
50% 80%
20% 30%
80% 30%
VB.NET Image: Visual Basic .NET Guide to Draw Text on Image in .
Please note that you can change some of the example, you can adjust the text font, font size, font type (regular LoadImage) Dim DrawFont As New Font("Arial", 16
extract data from pdf to excel online; extracting data from pdf into excel
Generate Image in .NET Winforms Imaging Viewer| Online Tutorials
Change Barcode Properties. barcode rotation angle; Click "Width" and "Height" to set barcode size; Click "Font" to choose human-readable text font style, color
export pdf form data to excel spreadsheet; save pdf forms in reader
7.2  Multi-Line Textflows 157
Note that the showborder=true option has been again used to illustrate the margins of 
the shape. Without the addfitbox option the rhombus shape will remain empty and the 
text will be wrapped around it.
Filling overlapping shapes. In the next example we will fill a shape comprising two 
overlapping polygons, namely a hexagon with a rectangle inside. Using the addfitbox 
option the fitbox itself will be excluded from being filled, and the polygons in the sub-
sequent list will be filled except in the overlapping area (see Figure 7.26):
wrap={ addfitbox polygons=
{ {20% 10%
80% 10%
100% 50%
80% 90%
20% 90%
0% 50%
20% 10%}
{35% 35%
65% 35%
65% 65%
35% 65%
35% 35%} } }
Without the addfitbox option you will get the opposite effect: the previously filled area 
will remain empty, and the previously empty areas will be filled with text.
Cookbook A full code sample can be found in the Cookbook topic text_output/fill_polygons_with_text.
Our 
paper 
planes are
the ideal way
of passing the
time. We offer a lot
of revolutionary brand-
new developments of the
traditional common paper
planes. If your lesson, con-
ference, or lecture turn
out to be deadly bor-
ing, you can have
a wonderful
time with
our pla-
nes.
Our paper planes are
the  ideal  way  of  pas-
sing  the  time.  We  offer
revolutionary new develop-
ments  of
the tradi-
tional  co-
mmon pa-
per planes.
If your les-
son,  conf-
erence,  or
lecture turn
out  to  be
deadly 
boring, 
you can have a wonderful
time with our planes. All
our models are folded
from one paper sheet.
Fig. 7.26
Filling overlapping shapes
Fig. 7.25
Filling a rhombus
shape with text
90% 50%
10% 50%
50% 100%
50% 0%
158
Chapter 7:  Formatting Features
7.3 Placing Images and Imported PDF Pages
The function PDF_fit_image( ) for placing raster image and templates as well as PDF_fit_
pdi_page( ) for placing imported PDF pages offer a wealth of options for controlling the 
placement on the page. This section demonstrates the most important options by look-
ing at some common application tasks. A complete list and descriptions of all options 
can be found in the PDFlib Reference.
Embedding raster images is easy to accomplish with PDFlib. The image file must first 
be loaded with PDF_load_image( ). This function returns an image handle which can be 
used along with positioning and scaling options in PDF_fit_image( ).
Embedding imported PDF pages works along the same line. The PDF page must be 
opened with PDF_open_pdi_page( ) to retrieve a page handle for use in PDF_fit_pdi_
page( ). The same positioning and scaling options can be used as for raster images.
All samples in this section work the same for raster images, templates, and imported 
PDF pages. Although code samples are only presented for raster images we talk about 
placing objects in general. Before calling any of the fit functions a call to PDF_load_
image( ) or PDF_open_pdi_document( ) and PDF_open_pdi_page( ) must be issued. For the 
sake of simplicity these calls are not reproduced here.
Cookbook Code samples regarding images and imported PDF pages issues can be found in the images and 
pdf_import categories of the PDFlib Cookbook.
7.3.1 Simple Object Placement
Positioning an image at the reference point. By default, an object will be placed in its 
original size with the lower left corner at the reference point. In this example we will 
place an image with the bottom centered at the reference point. The following code 
fragment places the image with the bottom centered at the reference point (0, 0).
p.fit_image(image, 0, 0, "position={center bottom}");
Similarly, you can use the position option with another combination of the keywords 
left, right, center, top, and bottom to place the object at the reference point.
Placing an image with scaling. The following variation will place the image while 
modifying its size:
p.fit_image(image, 0, 0, "scale=0.5");
This code fragment places the object with its lower left corner at the point (0, 0) in the 
user coordinate system. In addition, the object will be scaled in x and y direction by a 
scaling factor of 0.5, which makes it appear at 50 percent of its original size.
Cookbook A full code sample can be found in the Cookbook topic images/starter_image.
7.3.2 Positioning an Object in a Box
In order to position an object, an additional box with predefined width and height can 
be used. Figure 7.27 shows the output of the examples described below. Note that the 
blue box or line is depicted for visualising the box size; it is not part of the actual out-
put.
7.3  Placing Images and Imported PDF Pages 159
Positioning an image in the box. We define a box and place an image within the box 
on the top right. The box has a width of 70 units and a height of 45 units and is placed at 
the reference point (0, 0). The image is placed on the top right of the box (see Figure 
7.27a). Similarly, we can place the image at the center of the bottom. This case is depicted 
in Figure 7.27b.
Fig. 7.27 Placing an image in a box subject to various positioning options
7.3.3 Fitting an Object into a Box
In this section we fit the object into the box by using various fit methods. Let’s start 
with the default case, where no fit method will be used and no clipping or scaling will be 
applied. The image will be placed at the center of the box, 70 units wide and 45 high. The 
box will be placed at reference point (0, 0). Figure 7.28a illustrate that simple case.
Decreasing the box width from 70 to 35 units doesn’t have any effect on the output. 
The image will remain in its original size and will exceed the box (see Figure 7.28b).
Fitting an image in the center of a box. In order to center an image within a pre-
defined rectangle you don’t have to do any calculations, but can achieve this with suit-
able options. With position=center we place the image in the center of the box, 70 units 
wide and 45 high (boxsize={70 45}). Using fitmethod=meet, the image is proportionally re-
sized until its height completely fits into the box (see Figure 7.28c).
Decreasing the box width from 70 to 35 units will scale down the image until its 
width completely fits into the box (see Figure 7.28d).
Completely fitting the image into a box. We can further fit the image so that it com-
pletely fills the box. This is accomplished with fitmethod=entire. However, this combina-
tion will rarely be useful since the image will most probably be distorted (see Figure 
7.28e).
Clipping an image when fitting it into the box. Using another fit method 
(fitmethod=clip) we can clip the object if it exceeds the target box. We decrease the box 
size to a width and height of 30 units and position the image in its original size at the 
center of the box (see Figure 7.28f).
By positioning the image at the center of the box, the image will be cropped evenly 
on all sides. Similary, to completely show the upper right part of the image you can po-
sition it with position={right top} (see Figure 7.28g).
Generated output
Option list for PDF_fit_image
a)
boxsize {70 45} position={right top}
b)
boxsize {70 45} position={center bottom}
160
Chapter 7:  Formatting Features
Fig. 7.28 Fitting an image into a box subject to various fit methods
Adjusting an object to the page. Adjusting an object to a given page size can easily be 
accomplished by choosing the page as target box for placing the object. The following 
statement uses an A4-sized page with dimensions 595 x 842:
p.fit_image(image, 0, 0, "boxsize={595 842} position={left bottom} fitmethod=slice");
In this code fragment a box is placed at the lower left corner of the page. The size of the 
box equals the size of an A4 page. The object is placed in the lower left corner of the box 
and scaled proportionally until it fully covers the box and therefore the page. If the ob-
ject exceeds the box it will be cropped. Note that fitmethod=slice results in the object be-
ing scaled (as opposed to fitmethod=clip which doesn’t scale the object). Of course the 
position and fitmethod options could also be varied in this example.
7.3.4 Orientating an Object
Placing an image with orientation. In our next example we orientate an image to-
wards western direction (orientate=west). This means that the image is rotated by 90˚ 
counterclockwise and then the lower left corner of the rotated object is translated to the 
reference point (0, 0). The object will be rotated in itself (see Figure 7.31a). Since we have 
Generated output
Option list for PDF_fit_image( )
a)
boxsize={70 45} position=center
b)
boxsize={35 45} position=center
c)
boxsize={70 45} position=center fitmethod=meet
d)
boxsize={35 45} position=center fitmethod=meet
e)
boxsize={70 45} position=center fitmethod=entire
f)
boxsize={30 30} position=center fitmethod=clip
g)
boxsize={30 30} position={right top} fitmethod=clip
Documents you may be interested
Documents you may be interested