Determines whether the file is a portfolio.
public bool IsPortfolio {get;} public:property bool IsPortfolio{bool get()}
IsPortfolio # get (CodecsImageInfo)
true if the file is a portfolio; otherwise, false. The default value is false.
A PDF file can be created as a portfolio which contains multiple files assembled into an integrated unit. It can contain any number of attachments as well as a schema to control how to view the document.
In these types of documents, the file contains a single generic help page with text such as "For the best experience, open this PDF portfolio in a compatible viewer". The value of IsPortfolio will be true if the file is a PDF portfolio. It is up to the application to determine further handling of the file.
The number of attachments are stored in AttachmentCount.
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 portfolioif (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 fileCodecsAttachments attachments = rasterCodecs.ReadAttachments(fileName);if (attachments == null){// The format either:// - Does not support attachments// - LEADTOOLS does not support reading its attachmentsDebug.WriteLine("Attachments is not supported for this file format");return;}// Sanity checkDebug.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 existif (!Directory.Exists(outputDir))Directory.CreateDirectory(outputDir);// Extract the attachmentsforeach (CodecsAttachment attachment in attachments){// Get the output file namestring 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 attachmenttry{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
