Topics
All
MacOS
(Only)
Windows
(Only)
Linux
(Only, Not)
iOS
(Only, Not)
Components
Crossplatform Mac & Win
Server
Client
Old
Deprecated
Guides
Examples
Videos
New in version:
9.5
10.0
10.1
10.2
10.3
10.4
10.5
11.0
11.1
11.2
Statistic
FMM
Blog
The function inserts an image from a container.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
DynaPDF | 3.1 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameter | Description | Example | Flags |
---|---|---|---|
The PDF reference returned from DynaPDF.New. | |||
Container | The image container value. Pass the container field or a variable with the container content. | $image | |
PosX | The X position (from left of page) | 0 | |
PosY | The Y position (from bottom of page) | 0 | |
ScaleWidth | The scaled width of the image. | $width | |
ScaleHeight | The scaled height of the image. | $height | |
Index | The index of the image for multi image files. | 1 | Optional |
Returns image handle number or error message.
Set a few options and insert image from file:
MBS( "DynaPDF.SetCompressionFilter"; $PDF; "flate" )
MBS( "DynaPDF.SetSaveNewImageFormat"; $PDF; 0 )
MBS( "DynaPDF.SetResolution"; $PDF; 300 )
MBS( "DynaPDF.SetUseTransparency"; $PDF; 0 )
MBS( "DynaPDF.InsertImage"; $PDF; MyDatabase::ImageContainer; 72; 72; 300; 200; 1 )
Insert and reduce qualty to save space:
MBS( "DynaPDF.SetJPEGQuality"; $PDF; 75 )
MBS( "DynaPDF.SetCompressionFilter"; $PDF; "jpeg" )
MBS( "DynaPDF.SetSaveNewImageFormat"; $PDF; 1 )
MBS( "DynaPDF.SetResolution"; $PDF; 100 )
MBS( "DynaPDF.SetUseTransparency"; $PDF; 0 )
MBS( "DynaPDF.InsertImage"; $PDF; MyDatabase::ImageContainer; 72; 72; 300; 200; 1 )
Loop over all pages and insert an image on each page:
# Initialize DynaPDF if needed
If [ MBS("DynaPDF.IsInitialized") ≠ 1 ]
Perform Script [ Specified: From list ; “InitDynaPDF” ; Parameter: ]
End If
# Start new PDF environment
Set Variable [ $pdf ; Value: MBS("DynaPDF.New") ]
# Load PDF from container
Set Variable [ $r ; Value: MBS("DynaPDF.OpenPDFFromContainer"; $pdf; Watermark pages::InputPDF) ]
# import a page
Set Variable [ $r ; Value: MBS("DynaPDF.ImportPDFFile"; $pdf) ]
# now edit all pages
Set Variable [ $count ; Value: MBS("DynaPDF.GetPageCount"; $pdf) ]
Set Variable [ $index ; Value: 1 ]
Loop
Set Variable [ $r ; Value: MBS("DynaPDF.EditPage"; $pdf; $index) ]
Set Variable [ $index ; Value: $index + 1 ]
# Options for saving image
Set Variable [ $r ; Value: MBS("DynaPDF.SetSaveNewImageFormat"; $pdf; ,5) ]
Set Variable [ $r ; Value: MBS("DynaPDF.SetCompressionFilter"; $pdf; "jpeg") ]
# Insert image
Set Variable [ $w ; Value: 200 ]
Set Variable [ $h ; Value: 200 ]
Set Variable [ $x ; Value: (MBS("DynaPDF.GetPageWidth"; $pdf) - $w)/2 ]
Set Variable [ $y ; Value: (MBS("DynaPDF.GetPageHeight"; $pdf) - $h)/2 ]
Set Variable [ $r ; Value: MBS("DynaPDF.InsertImage"; $pdf; Watermark pages::WatermarkPicture; $x; $y; $w; $h) ]
# End page
Set Variable [ $r ; Value: MBS("DynaPDF.EndPage"; $pdf) ]
Exit Loop If [ $count < $index ]
End Loop
# Set title
Set Variable [ $r ; Value: MBS("DynaPDF.SetDocInfo"; $pdf; "Title"; "Test PDF") ]
# Save
Set Variable [ $PDFData ; Value: MBS("DynaPDF.Save"; $pdf; "hello.pdf") ]
Set Variable [ $r ; Value: MBS("DynaPDF.Release"; $pdf) ]
# Put in Container
Set Field [ Watermark pages::OutputPDF ; $PDFData ]
Place an image centered on the page with border:
Set Variable [ $r ; Value: MBS("DynaPDF.AppendPage"; $pdf) ]
# put a background in
Set Variable [ $r ; Value: MBS("DynaPDF.SetFillColor"; $pdf; ,8; ,8; ,8) ]
Set Variable [ $r ; Value: MBS("DynaPDF.Rectangle"; $pdf; 0; 0; MBS( "DynaPDF.GetPageWidth"; $PDF ); MBS( "DynaPDF.GetPageHeight"; $PDF ); "fill") ]
# options for saving image
Set Variable [ $r ; Value: MBS("DynaPDF.SetSaveNewImageFormat"; $pdf; 0) ]
Set Variable [ $r ; Value: MBS("DynaPDF.SetResolution"; $pdf; 300) ]
# read size of image
Set Variable [ $r ; Value: MBS("DynaPDF.ReadImageFormat"; $pdf; Merge PDFs::InputImage) ]
Set Variable [ $ImageWidth ; Value: GetAsNumber (LeftValues ( $r ; 1 )) ]
Set Variable [ $imageHeight ; Value: GetAsNumber (MiddleValues ( $r ; 2; 1 )) ]
# The destination area where to put PDF
Set Variable [ $TargetX ; Value: 50 ]
Set Variable [ $TargetY ; Value: 50 ]
Set Variable [ $TargetWidth ; Value: MBS( "DynaPDF.GetPageWidth"; $PDF ) - 100 ]
Set Variable [ $TargetHeight ; Value: MBS( "DynaPDF.GetPageHeight"; $PDF ) - 100 ]
# calculate scale factor
Set Variable [ $factor ; Value: Min( $TargetHeight / $ImageHeight; $TargetWidth / $ImageWidth) ]
# calculate output size
Set Variable [ $DestWidth ; Value: $ImageWidth * $factor ]
Set Variable [ $DestHeight ; Value: $ImageHeight * $factor ]
# Center in target area
Set Variable [ $DestX ; Value: $TargetX + ($TargetWidth-$DestWidth) / 2 ]
Set Variable [ $DestY ; Value: $TargetY + ($TargetHeight-$DestHeight) / 2 ]
# insert the image
Set Variable [ $r ; Value: MBS("DynaPDF.InsertImage"; $pdf; Merge PDFs::InputImage; $DestX; $DestY; $DestWidth; $DestHeight) ]
# close page and move to next record
Set Variable [ $r ; Value: MBS("DynaPDF.EndPage"; $pdf) ]
Created 18th August 2014, last changed 2nd December 2019
DynaPDF.InsertBookmarkEx - DynaPDF.InsertImageFile
Feedback: Report problem or ask question.