Font embedding type.
[SerializableAttribute()]
public enum PDFFontEmbeddingType
public final class PDFFontEmbeddingType
extends java.lang.Enum<PDFFontEmbeddingType>
public:
[SerializableAttribute]
enum class PDFFontEmbeddingType sealed
class PDFFontEmbeddingType(Enum):
None = 0
Embedded = 1
EmbeddedSubset = 2
Value | Member | Description |
---|---|---|
0 | None | The font is not embedded |
1 | Embedded | Font is fully embedded and a full copy of the entire character set of a font is stored in the PDF. |
2 | EmbeddedSubset | Font is embedded, but with only those characters that are actually used in the lay-out are stored in the PDF. |
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Controls;
using Leadtools.Pdf;
using Leadtools.Svg;
using Leadtools.WinForms;
private static void DocumentFontsExample()
{
// Make a copy of 'leadtools.pdf' installed with LEADTOOLS
string pdfFile = @"C:\LEADTOOLS22\Resources\Images\leadtools.pdf";
using (var document = new PDFDocument(pdfFile))
{
document.ParseDocumentStructure(PDFParseDocumentStructureOptions.Fonts);
Console.WriteLine("Fonts found in the document:");
if (document.Fonts != null && document.Fonts.Count > 0)
{
foreach (PDFFont font in document.Fonts)
{
string faceName = GetPDFFontFaceName(font);
string type = GetPDFFontTypeName(font);
string encoding = GetPDFFontEncodingName(font);
Console.WriteLine($" Face name:{faceName}\n type:{type} encoding:{encoding}");
}
}
}
}
private static string GetPDFFontFaceName(PDFFont font)
{
if (string.IsNullOrEmpty(font.FaceName))
return string.Empty;
string faceName = font.FaceName;
// Strip out everything between + and -
char[] separator = { '+', '-' };
int index = faceName.IndexOfAny(separator);
if (index != -1)
{
faceName = faceName.Substring(index + 1);
index = faceName.IndexOfAny(separator);
if (index != -1)
faceName = faceName.Substring(0, index);
}
switch (font.EmbeddingType)
{
case PDFFontEmbeddingType.Embedded:
faceName += " (Embedded)";
break;
case PDFFontEmbeddingType.EmbeddedSubset:
faceName += " (Embedded Subset)";
break;
case PDFFontEmbeddingType.None:
default:
break;
}
return faceName;
}
private static string GetPDFFontTypeName(PDFFont font)
{
if (string.IsNullOrEmpty(font.FontType))
return string.Empty;
if (string.Compare(PDFFont.TypeType0, font.FontType, true) == 0)
{
if (string.Compare(PDFFont.TypeCIDFontType2, font.DescendantCID, true) == 0)
return "TrueType (CID)";
else
return "Type 2 (CID)";
}
if (string.Compare(PDFFont.TypeType1, font.FontType, true) == 0)
return "Type 1";
if (string.Compare(PDFFont.TypeType3, font.FontType, true) == 0)
return "Type 3";
return font.FontType;
}
private static string GetPDFFontEncodingName(PDFFont font)
{
if (string.IsNullOrEmpty(font.Encoding))
return "Custom";
if (string.Compare(PDFFont.EncodingWinAnsiEncoding, font.Encoding, true) == 0)
return "Ansi";
if (string.Compare(PDFFont.EncodingStandardEncoding, font.Encoding, true) == 0)
return "Standard";
if (string.Compare(PDFFont.EncodingPDFDocEncoding, font.Encoding, true) == 0)
return "PDF";
if (string.Compare(PDFFont.EncodingMacExpertEncoding, font.Encoding, true) == 0)
return "MAC Expert";
if (string.Compare(PDFFont.EncodingMacRomanEncoding, font.Encoding, true) == 0)
return "MAC Roman";
return font.Encoding;
}
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