ImageEn, unit imageenio

TImageEnIO.SaveToPDF

TImageEnIO.SaveToPDF


Declaration

procedure SaveToPDF();


Description

Save the current image to the active Adobe PDF file, opened using CreatePDFFile. If your image contains layers, then the layers will be output as scalable PDF objects.
The size of the page will be specified by PDF_PaperWidth and PDF_PaperHeight. Margins are specified by PDF_PageMargin.
Image position and size is affected by PDF_ImageOptions.

The following TIELayer features are not supported when exporting to PDF:
Gradient fills
Mask layers


The engine used to save PDF files (either using PDFium or ImageEn native code) is specified by PDFEngine.

Note:
Images will be aligned to the upper-left corner of the page. To center images add iepioCentered to PDF_ImageOptions
To abort while saving set Aborting to true
Read more about ImageEn PDF Support
The created PDF will be v1.4 format


Demo

Demo  Demos\PDF\PDFBuilder\PdfBuilder.dpr


Example 1

IEGlobalSettings().PDFEngine := ieenNative;
ImageEnView1.IO.CreatePDFFile( 'D:\output.pdf' );
ImageEnView1.IO.Params.PDF_PaperSize    := iepA4;
ImageEnView1.IO.Params.PDF_PageMargin   := Round( 0.25 * 72 );  // 1/4 inch
ImageEnView1.IO.Params.PDF_ImageOptions := [ iepioCentered ];  // Center images

// load and save page 1
ImageEnView1.IO.LoadFromFile('C:\page1.tiff');
ImageEnView1.IO.Params.PDF_Compression := ioPDF_G4FAX;  // G4Fax compression
ImageEnView1.IO.SaveToPDF();

// load and save page 2
ImageEnView1.IO.LoadFromFile('C:\page2.tiff');
ImageEnView1.IO.Params.PDF_Compression := ioPDF_G4FAX;  // G4Fax compression
ImageEnView1.IO.SaveToPDF();

...Other pages...

// Close PDF file
ImageEnView1.IO.ClosePDFFile();


Example 2

// Create a scalable PDF document containing ten pages with text and a shape
ImageEnView1.IO.CreatePDFFile( 'D:\Explosion.pdf' );

For I := 1 to 10 do
begin
  ImageEnView1.Blank;

  // Add a yellow explosion shape layer at size 220 x 120
  ImageEnView1.LayersAdd( iesExplosion, 50, 50, 220, 120 );
  ImageEnView1.CurrentLayer.FillColor    := clYellow;
  ImageEnView1.CurrentLayer.BorderWidth  := 0;

  // Add a text layer
  ImageEnView1.LayersAdd( ielkText );
  ImageEnView1.LayersAdd( 'Explosion on page ' + IntToStr( I ), 25, clRed, 'Arial Black', [fsBold] );
  ImageEnView1.CurrentLayer.PosX := IELayer_Pos_HCenter;
  ImageEnView1.CurrentLayer.PosY := IELayer_Pos_VCenter;
  ImageEnView1.Update();

  // Add as a page
  ImageEnView1.IO.SaveToPDF();
end;

// Close PDF file
ImageEnView1.IO.ClosePDFFile();


Compatibility Information

Prior to v13.2.0, ImageEn would always use native code to save PDF files. From v13.2.0, the saving engine is controlled by PDFEngine. If the PDFium DLL (iepdf*.dll) is located in the EXE folder, ImageEn will now default to using PDFium for saving. To avoid this, set IEGlobalSettings().PDFEngine := ieenNative;


See Also

CreatePDFFile
ClosePDFFile
SaveToFilePDF
IECreatePDFFromFileList