←Select platform

CodecsPdfOptions Class

Summary
Provides extra options for loading and saving PDF images.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public class CodecsPdfOptions 
@interface LTCodecsPdfOptions : NSObject 
public class CodecsPdfOptions 
public ref class CodecsPdfOptions  
class CodecsPdfOptions: 
Remarks

To load or save PDF documents to/from a raster image in LEADTOOLS, use the Leadtools.Pdf.dll assembly. This is the file filter for the PDF format (as well as Postscript and Enhanced Postscript). Use this assembly as any other file filter in LEADTOOLS, such as Leadtools.Codecs.Bmp.dll for BMP support and Leadtools.Codecs.Tif.dll for TIF support.

In addition to Leadtools.Pdf.dll, the Leadtools.Pdf.Utilities.dll assembly is required in the following situations:

  • When loading Postscript (PS) or Enhanced Postscript (EPS) files. This is always needed regardless of the value of the UsePdfEngine option described below.

  • When the value of CodecsPdfLoadOptions.UsePdfEngine is set to true (The default value is false). When this option is used, then LEADTOOLS will use both Leadtools.Pdf.dll and Leadtools.Pdf.Utilities.dll when loading PDF files. This is provided for legacy support.

Leadtools.Pdf.Utilities.dll contains many resources such as tables and fonts required to render a PDF image (if one of the options above is satisfied and also always for PS and EPS files). This DLL is not referenced in a direct way by the file filter; instead it is loaded dynamically and out of a process if needed. You must ensure that this DLL is present on the machine. By default, it is required to have this DLL in the same directory where the file filter is located. However, to share many instances of the Leadtools.Pdf.Utilities.dll assembly between many applications, use the CodecsPdfOptions.InitialPath property.

Note that if the application does not required PDF Engine, for example, the application is only loading and saving PDF files as raster images. Then, Leadtools.Pdf.Utilities.dll is not required to be present on the machine. Leadtools.Pdf.dll is always required regardless.

Example
C#
Java
using Leadtools; 
using Leadtools.Codecs; 
 
using Leadtools.ImageProcessing.Core; 
using Leadtools.Pdf; 
 
public void CodecsPdfOptionsExample() 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
   string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "PDFSegmentation.pdf"); 
   string destFileName1 = Path.Combine(LEAD_VARS.ImagesDir, "PdfOptions.pdf"); 
   string destFileName2 = Path.Combine(LEAD_VARS.ImagesDir, "PdfOptions.bmp"); 
   CodecsImageInfo info = codecs.GetInformation(srcFileName, true); 
 
   codecs.Options.Pdf.InitialPath = @"C:\MyApp\Bin"; 
 
   info = codecs.GetInformation(srcFileName, true); 
   Debug.WriteLine("Information for: {0}", srcFileName); 
   Debug.WriteLine(string.Format("Document: {0}", info.Document)); // CodecsDocumentImageInfo reference 
   Debug.WriteLine(string.Format("Document: {0}", info.Document.IsDocumentFile)); 
   Debug.WriteLine(string.Format("Document: {0}", info.Document.PageHeight)); 
   Debug.WriteLine(string.Format("Document: {0}", info.Document.PageWidth)); 
   Debug.WriteLine(string.Format("Document: {0}", info.Document.Unit)); 
   Debug.WriteLine(string.Format("Document: {0}", info.IsGray8Alpha)); 
   Debug.WriteLine(string.Format("Palette: {0}", info.GetPalette())); 
 
   // Check if the PDF engine is installed then get the load and save options of the PDF files. 
   if (codecs.Options.Pdf.IsEngineInstalled) 
   { 
      // Resulting image pixel depth. 
      // CodecsPdfOptions & CodecsPdfLoadOptions reference 
      codecs.Options.Pdf.Load.DisplayDepth = 24; 
      codecs.Options.Pdf.Load.GraphicsAlpha = 4; 
      codecs.Options.Pdf.Load.DisableCieColors = false; 
      codecs.Options.Pdf.Load.DisableCropping = false; 
      codecs.Options.Pdf.Load.EnableInterpolate = false; 
      codecs.Options.Pdf.Load.Password = ""; 
 
      // Type of font anti-aliasing to use. 
      codecs.Options.Pdf.Load.TextAlpha = 1; 
      codecs.Options.Pdf.Load.UseLibFonts = true; 
 
      // Horizontal,vertical  display resolution in dots per inch. 
      codecs.Options.RasterizeDocument.Load.XResolution = 150; 
      codecs.Options.RasterizeDocument.Load.YResolution = 150; 
 
      // CodecsRasterizeDocumentOptions & CodecsRasterizeDocumentLoadOptions reference 
      codecs.Options.RasterizeDocument.Load.BottomMargin = 0.1; 
      codecs.Options.RasterizeDocument.Load.LeftMargin = 0.1; 
      codecs.Options.RasterizeDocument.Load.PageHeight = 11; 
      codecs.Options.RasterizeDocument.Load.PageWidth = 8.5; 
      codecs.Options.RasterizeDocument.Load.Resolution = 150; 
      codecs.Options.RasterizeDocument.Load.RightMargin = 1.25; 
      codecs.Options.RasterizeDocument.Load.SizeMode = CodecsRasterizeDocumentSizeMode.None; // CodecsRasterizeDocumentSizeMode Enumeration reference 
      codecs.Options.RasterizeDocument.Load.TopMargin = 1.0; 
      codecs.Options.RasterizeDocument.Load.Unit = CodecsRasterizeDocumentUnit.Pixel; // CodecsRasterizeDocumentUnit Enumeration reference 
 
      using (RasterImage image = codecs.Load(srcFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)) 
      { 
         // Set access rights for the user when he\she opens the file we create 
         // CodecsPdfSaveOptions reference 
         codecs.Options.Pdf.Save.AssembleDocument = true; 
         codecs.Options.Pdf.Save.ExtractText = true; 
         codecs.Options.Pdf.Save.ExtractTextGraphics = true; 
         codecs.Options.Pdf.Save.PrintDocument = false; 
         codecs.Options.Pdf.Save.FillForm = true; 
         codecs.Options.Pdf.Save.ModifyAnnotation = true; 
         codecs.Options.Pdf.Save.ModifyDocument = true; 
         codecs.Options.Pdf.Save.OwnerPassword = "LEAD Technologies"; 
         codecs.Options.Pdf.Save.PrintFaithful = false; 
         codecs.Options.Pdf.Save.TextEncoding = CodecsPdfTextEncoding.Hex; 
         codecs.Options.Pdf.Save.Use128BitEncryption = true; 
         codecs.Options.Pdf.Save.UserPassword = "LEAD"; 
 
         // Set the PDF version to be v1.4 
         codecs.Options.Pdf.Save.Version = CodecsRasterPdfVersion.V14; 
 
         // Save it as linearized (optimized for web view) 
         codecs.Options.Pdf.Save.Linearized = true; 
         codecs.Options.Pdf.Save.LowMemoryUsage = false; 
         codecs.Options.Pdf.Save.SavePdfA = false; 
         codecs.Options.Pdf.Save.SavePdfv13 = false; 
         codecs.Options.Pdf.Save.SavePdfv14 = false; 
         codecs.Options.Pdf.Save.SavePdfv15 = false; 
         codecs.Options.Pdf.Save.SavePdfv16 = false; 
         codecs.Options.Pdf.Save.SavePdfv17 = false; 
         codecs.Options.Pdf.Save.UseImageResolution = true; 
 
         // Save the image back as PDF 
         codecs.Save(image, destFileName1, RasterImageFormat.RasPdf, 24); 
      } 
 
      // And load it back before saving it as BMP 
      using (RasterImage image = codecs.Load(destFileName1)) 
      { 
         codecs.Save(image, destFileName2, RasterImageFormat.Bmp, image.BitsPerPixel); 
      } 
   } 
   else 
   { 
      Debug.WriteLine("PDF Engine is not found!"); 
   } 
 
   // Clean up 
   codecs.Dispose(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
 
import java.io.File; 
import java.io.IOException; 
import java.net.URI; 
import java.net.URISyntaxException; 
import java.nio.file.Paths; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.*; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.imageprocessing.core.MinMaxBitsCommand; 
 
 
public void codecsPdfOptionsExample() { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
   RasterCodecs codecs = new RasterCodecs(); 
   String srcFileName = combine(LEAD_VARS_IMAGES_DIR, "PDFSegmentation.pdf"); 
   String destFileName1 = combine(LEAD_VARS_IMAGES_DIR, "PdfOptions.pdf"); 
   String destFileName2 = combine(LEAD_VARS_IMAGES_DIR, "PdfOptions.bmp"); 
   CodecsImageInfo info = codecs.getInformation(srcFileName, true); 
   codecs.getOptions().getPdf().setInitialPath("C:\\MyApp\\Bin"); 
   info = codecs.getInformation(srcFileName, true); 
   System.out.println("Information for: " + srcFileName); 
   System.out.println("Document: " + info.getDocument()); // CodecsDocumentImageInfo reference 
   System.out.println("Document: " + info.getDocument().isDocumentFile()); 
   System.out.println("Document: " + info.getDocument().getPageHeight()); 
   System.out.println("Document: " + info.getDocument().getPageWidth()); 
   System.out.println("Document: " + info.getDocument().getUnit()); 
   System.out.println("Document: " + info.isGray8Alpha()); 
   System.out.println("Palette: " + info.getPalette()); 
 
   // Check if the PDF engine is installed then get the load and save options of 
   // the PDF files. 
   if (codecs.getOptions().getPdf().getInitialPath() != null) { 
      // Resulting image pixel depth. 
      // CodecsPdfOptions & CodecsPdfLoadOptions reference 
      codecs.getOptions().getPdf().getLoad().setDisplayDepth(24); 
      codecs.getOptions().getPdf().getLoad().setGraphicsAlpha(4); 
      codecs.getOptions().getPdf().getLoad().setDisableCieColors(false); 
      codecs.getOptions().getPdf().getLoad().setDisableCropping(false); 
      codecs.getOptions().getPdf().getLoad().setEnableInterpolate(false); 
      codecs.getOptions().getPdf().getLoad().setPassword(""); 
 
      // Type of font anti-aliasing to use. 
      codecs.getOptions().getPdf().getLoad().setTextAlpha(1); 
      codecs.getOptions().getPdf().getLoad().setUseLibFonts(true); 
 
      // Horizontal,vertical display resolution in dots per inch. 
      codecs.getOptions().getRasterizeDocument().getLoad().setXResolution(150); 
      codecs.getOptions().getRasterizeDocument().getLoad().setYResolution(150); 
 
      // CodecsRasterizeDocumentOptions & CodecsRasterizeDocumentLoadOptions reference 
      codecs.getOptions().getRasterizeDocument().getLoad().setBottomMargin(0.1); 
      codecs.getOptions().getRasterizeDocument().getLoad().setLeftMargin(0.1); 
      codecs.getOptions().getRasterizeDocument().getLoad().setPageHeight(11); 
      codecs.getOptions().getRasterizeDocument().getLoad().setPageWidth(8.5); 
      codecs.getOptions().getRasterizeDocument().getLoad().setResolution(150); 
      codecs.getOptions().getRasterizeDocument().getLoad().setRightMargin(1.25); 
      codecs.getOptions().getRasterizeDocument().getLoad().setSizeMode(CodecsRasterizeDocumentSizeMode.NONE); // CodecsRasterizeDocumentSizeMode 
                                                                                                              // Enumeration 
                                                                                                              // reference 
      codecs.getOptions().getRasterizeDocument().getLoad().setTopMargin(1.0); 
      codecs.getOptions().getRasterizeDocument().getLoad().setUnit(CodecsRasterizeDocumentUnit.PIXEL); // CodecsRasterizeDocumentUnit 
                                                                                                       // Enumeration 
                                                                                                       // reference 
 
      RasterImage image = codecs.load(srcFileName, 0, CodecsLoadByteOrder.BGR_OR_GRAY, 1, 1); 
 
      // Set access rights for the user when he\she opens the file we create 
      // CodecsPdfSaveOptions reference 
      codecs.getOptions().getPdf().getSave().setAssembleDocument(true); 
      codecs.getOptions().getPdf().getSave().setExtractText(true); 
      codecs.getOptions().getPdf().getSave().setExtractTextGraphics(true); 
      codecs.getOptions().getPdf().getSave().setPrintDocument(false); 
      codecs.getOptions().getPdf().getSave().setFillForm(true); 
      codecs.getOptions().getPdf().getSave().setModifyAnnotation(true); 
      codecs.getOptions().getPdf().getSave().setModifyDocument(true); 
      codecs.getOptions().getPdf().getSave().setOwnerPassword("LEAD Technologies"); 
      codecs.getOptions().getPdf().getSave().setPrintFaithful(false); 
      codecs.getOptions().getPdf().getSave().setTextEncoding(CodecsPdfTextEncoding.HEX); 
      codecs.getOptions().getPdf().getSave().setUse128BitEncryption(true); 
      codecs.getOptions().getPdf().getSave().setUserPassword("LEAD"); 
 
      // Set the PDF version to be v1.4 
      codecs.getOptions().getPdf().getSave().setVersion(CodecsRasterPdfVersion.V14); 
 
      // Save it as linearized (optimized for web view) 
      codecs.getOptions().getPdf().getSave().setLinearized(true); 
      codecs.getOptions().getPdf().getSave().setLowMemoryUsage(false); 
      codecs.getOptions().getPdf().getSave().setSavePdfA(false); 
      codecs.getOptions().getPdf().getSave().setSavePdfv13(false); 
      codecs.getOptions().getPdf().getSave().setSavePdfv14(false); 
      codecs.getOptions().getPdf().getSave().setSavePdfv15(false); 
      codecs.getOptions().getPdf().getSave().setSavePdfv16(false); 
      codecs.getOptions().getPdf().getSave().setSavePdfv17(false); 
      codecs.getOptions().getPdf().getSave().setUseImageResolution(true); 
 
      // Save the image back as PDF 
      codecs.save(image, destFileName1, RasterImageFormat.PDF_LEAD_MRC, 24); 
      image = null; 
 
      // And load it back before saving it as BMP 
      image = codecs.load(destFileName1); 
      codecs.save(image, destFileName2, RasterImageFormat.BMP, image.getBitsPerPixel()); 
 
      assertTrue("File unsuccessfully saved to " + destFileName2, (new File(destFileName2)).exists()); 
      System.out.printf("File successfully saved to %s%n", destFileName2); 
 
      image = null; 
   } else 
      System.out.println("PDF Engine is not found!"); 
 
   // Clean up 
   codecs.dispose(); 
} 
Requirements

Target Platforms

Help Version 23.0.2024.2.29
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Codecs Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.