←Select platform

CodecsAttachment Class

Summary

Properties of a single attachment in a file.

Syntax
C#
C++/CLI
Python
public class CodecsAttachment 
public: 
   ref class CodecsAttachment 
class CodecsAttachment: 
Remarks

CodecsAttachment contains the following members:

Member Description
AttachmentNumber 1-based number of this attachment in the file. Required
FileName File name of the attachment. Required
DisplayName Display name of the attachment. May or may not be the same as FileName. Optional
Description Extra description information of this attachment. Optional
FileLength Length of the attachment file in bytes. Optional
TimeCreated](codecsattachment-timecreated.html) Time the attachment file is created. Optional
TimeModified Time the attachment file was last modified. Optional
Metadata Generic dictionary containing extra properties of this attachment file. Optional
Example
C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
 
 
private static void ReadAttachmentsExample(string fileName, string outputDir) 
{ 
   using (RasterCodecs rasterCodecs = new RasterCodecs()) 
   { 
 
      int attachmentCount; 
 
      // Get information on the owner file 
      // This step is optional if we are not interested in determining whether the owner file format 
      // or whether it is a PDF portfolio. 
      using (CodecsImageInfo imageInfo = rasterCodecs.GetInformation(fileName, true)) 
      { 
         Debug.WriteLine("Information"); 
         Debug.WriteLine("Format:" + imageInfo.Format); 
         // If PDF, check if it is portfolio 
         if (imageInfo.Format == RasterImageFormat.RasPdf) 
            Debug.WriteLine("IsPortfolio:" + imageInfo.IsPortfolio); 
         attachmentCount = imageInfo.AttachmentCount; 
         Debug.WriteLine("Attachments:" + imageInfo.AttachmentCount); 
      } 
 
      // Read the properties of the attachments embedded in this file 
      CodecsAttachments attachments = rasterCodecs.ReadAttachments(fileName); 
 
      if (attachments == null) 
      { 
         // The format either: 
         // - Does not support attachments 
         // - LEADTOOLS does not support reading its attachments 
         Debug.WriteLine("Attachments is not supported for this file format"); 
         return; 
      } 
 
      // Sanity check 
      Debug.Assert(attachments.Count == attachmentCount); 
      Debug.Assert(attachments.OriginalFormat == RasterImageFormat.Unknown); 
 
      if (attachments.Count == 0) 
      { 
         Debug.WriteLine("No attachments to extract"); 
         return; 
      } 
 
      // Create the output directory if it does not exist 
      if (!Directory.Exists(outputDir)) 
         Directory.CreateDirectory(outputDir); 
 
      // Extract the attachments 
      foreach (CodecsAttachment attachment in attachments) 
      { 
         // Get the output file name 
         string outputFileName = Path.Combine(outputDir, attachment.FileName); 
 
         var description = attachment.Description; 
         var displayName = attachment.DisplayName; 
         var fileLength = attachment.FileLength; 
         var metaData = attachment.Metadata; 
         var timeCreated = attachment.TimeCreated; 
         var timeModified = attachment.TimeModified; 
 
         Debug.WriteLine("Extracting attachment to output file: " + outputFileName); 
         rasterCodecs.ExtractAttachment(fileName, attachment.AttachmentNumber, outputFileName); 
 
         // Show information on this attachment 
         try 
         { 
            using (CodecsImageInfo imageInfo = rasterCodecs.GetInformation(outputFileName, true)) 
            { 
               Debug.WriteLine($" attachment format is {imageInfo.Format} and has {imageInfo.TotalPages} pages"); 
            } 
         } 
         catch (Exception ex) 
         { 
            Debug.WriteLine($" attachment format could not be obtained, error {ex.Message}"); 
         } 
      } 
   } 
} 
 
import java.io.*; 
import java.net.*; 
import java.nio.file.Paths; 
import java.util.*; 
import java.time.Instant; 
import java.time.Duration; 
 
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.codecs.RasterCodecs.FeedCallbackThunk; 
import leadtools.drawing.internal.*; 
import leadtools.imageprocessing.*; 
import leadtools.imageprocessing.color.ChangeIntensityCommand; 
import leadtools.svg.*; 
 
 
public void readAttachmentsExample() throws IOException { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
   String fileName = combine(LEAD_VARS_IMAGES_DIR, "pdfsegmentation.pdf"); 
   String outputDir = combine(LEAD_VARS_IMAGES_DIR, "attachments_test.pdf"); 
   RasterCodecs rasterCodecs = new RasterCodecs(); 
 
   int attachmentCount; 
 
   // Get information on the owner file 
   // This step is optional if we are not interested in determining whether the 
   // owner file format 
   // or whether it is a PDF portfolio. 
   CodecsImageInfo imageInfo = rasterCodecs.getInformation(fileName, true); 
 
   System.out.println("Information"); 
   System.out.println("Format:" + imageInfo.getFormat()); 
   // If PDF, check if it is portfolio 
   if (imageInfo.getFormat() == RasterImageFormat.RAS_PDF) 
      System.out.println("IsPortfolio:" + imageInfo.isPortfolio()); 
   attachmentCount = imageInfo.getAttachmentCount(); 
   System.out.println("Attachments:" + imageInfo.getAttachmentCount()); 
 
   // Read the properties of the attachments embedded in this file 
   CodecsAttachments attachments = rasterCodecs.readAttachments(fileName); 
 
   if (attachments == null) { 
      // The format either: 
      // - Does not support attachments 
      // - LEADTOOLS does not support reading its attachments 
      System.out.println("Attachments is not supported for this file format"); 
      return; 
   } 
 
   // Sanity check 
   assertTrue(attachments.size() == attachmentCount); 
   assertTrue(attachments.getOriginalFormat() == RasterImageFormat.UNKNOWN); 
 
   if (attachments.size() == 0) { 
      System.out.println("No attachments to extract"); 
      return; 
   } 
 
   // Create the output directory if it does not exist 
   File outputDirFile = new File(outputDir); 
   if (!outputDirFile.exists()) 
      outputDirFile.createNewFile(); 
 
   // Extract the attachments 
   for (CodecsAttachment attachment : attachments) { 
      // Get the output file name 
      String outputFileName = combine(outputDir, attachment.getFileName()); 
 
      String description = attachment.getDescription(); 
      String displayName = attachment.getDisplayName(); 
      long fileLength = attachment.getFileLength(); 
      Map<String, String> metaData = attachment.getMetadata(); 
      Date timeCreated = attachment.getTimeCreated(); 
      Date timeModified = attachment.getTimeModified(); 
 
      System.out.println("Description: " + description); 
      System.out.println("Display name: " + displayName); 
      System.out.println("File length: " + fileLength); 
      System.out.println("Meta data: " + metaData); 
      System.out.println("Time created: " + timeCreated); 
      System.out.println("Time modified: " + timeModified); 
 
      System.out.println("Extracting attachment to output file: " + outputFileName); 
      rasterCodecs.extractAttachment(fileName, attachment.getAttachmentNumber(), outputFileName); 
 
      // Show information on this attachment 
      try { 
         imageInfo = rasterCodecs.getInformation(outputFileName, true); 
 
         System.out.println(" attachment format is {imageInfo.Format} and has {imageInfo.TotalPages} pages"); 
 
      } catch (Exception ex) { 
         System.out.println(" attachment format could not be obtained, error {ex.Message}"); 
      } 
   } 
} 
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.