Represents a collection of attachments to a file.
[DefaultMemberAttribute("Item")]
public class CodecsAttachments : LeadCollection<CodecsAttachment>
public:
[DefaultMemberAttribute(L"Item")]
ref class CodecsAttachments : LeadCollection<CodecsAttachment^>
class CodecsAttachments(LeadCollection):
CodecsAttachments is obtained by calling RasterCodecs.ReadAttachments on a file containing attachments.
CodecsAttachments is a collection of CodecsAttachment objects, where each item contains the properties of a single attachment found in the file.
OriginalFormat is the format of the owner file (parent) passed to RasterCodecs.ReadAttachments.
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}");
}
}
}
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document