Adobe ResourcesAdvancedArt TextBackground RemovalBitmapBMPBranched PipelineChannelsClipping PathsCodecsColor AdjustmentColor ConversionColor ManagementColor ProfileCompressionCropDrawingEPSEXIFExtra ChannelsFilesystemFontFormat ConversionFormatted TextGIFGradientGraphics ContainerGreen ScreenImage ValidationIndexed formatInteroperabilityIPTCJPGLossless JPEGMetadataModify ContainerMultiple framesPathPDFPersonalizationPipelinePixel AccessPNGPSDPSD ProcessorRasterizationRAWReadResizeRotateSpot ColorStreamSVGTextText LayoutTGAThumbnailTIFFTransformTransparentizeVDPVignetteWatermarkWEBPWPFWriteXMP

Create a PDF/VT file with personalized business cards

This sample shows how to generate a print-ready PDF/VT (variable-data/transactional) file containing a batch of personalized business cards. It reuses a single shared page layout loaded from a PDF template for every card, and adds document- and record-level PDF/VT metadata (job, sender, and production details) using PdfVtDictionary and the CIP4 dictionary keys. The sample uses PdfWriter with an OutputIntent and PdfVtOptions to embed a CMYK ICC profile and document metadata, and a CustomFontRegistry to draw each recipient's name, position, and contact details with custom TrueType fonts.

Font API

Draws text without text objects, only with getting char info + simple metrics.

Font Fallback

Draws multilanguage text with font fallback support.

Font Metrics

Adds font to FontRegistry from file and shows its metrics.

Load fonts on demand with the FontMissing event

This sample shows how to start with an empty font registry and add only the fonts a design actually uses, at the moment it asks for them. When a font is requested by a PostScript name that is not registered, CustomFontRegistry raises the FontMissing event; the handler looks the name up in the application's own font catalog and adds the file with CustomFontRegistry.Add, and the request then succeeds. A server with a large font library no longer has to parse every font at startup.

Map template font names with aliases and remove fonts

This sample shows how to keep a font registry in step with a font library that changes while the application runs. CustomFontRegistry.Add reports for every face it reads a FontAddResult with the PostScript name and a status, for example AlreadyPresent when the same file is added twice. CustomFontRegistry.AddFontAlias attaches extra names to a registered font, so templates can refer to fonts by role ("Brand-Heading") rather than by file. CustomFontRegistry.Remove unregisters a font that was deleted from the library without rebuilding the registry, and PostscriptNameCollisionPolicy decides whether a new file with an already registered PostScript name replaces the old one.

Show Custom Font Metrics

Adds font to FontRegistry from file and shows its metrics.