System throws Object reference not set to an instance of an object

Frutiger 45 Light not embedded 1.pdf (5.7 KB)

Trying to Convert this file to PDFA3B format and system throws

ExceptionMessage: Object
reference not set to an instance of an object.; IsFileConverted: False; AsposeConverterLog: ; MoreInfo: .
Error on ConvertDocumentsCore GetConverter … Message: Object reference not set to an instance of an object.
InnerException: at Idp.PdfAConverter.Converters.PdfConverterBase1.ConvertCore(String watermark) at Idp.PdfAConverter.InMemoryConverterManager.ConvertDocumentsCore(List1 documentMetas, String watermark,
CallLog callLog)

Can you Please confirm if the Frutiger45Light is not Embedded in PDF, then System will try to get actually which font from the Machine ? I have made sure that my machine has ftl_____.ttf font added in c:/Windows/Fonts and also registered in RegEdit file
still i am getting error. is it that its looking something else ?

image.png (29.4 KB)

@GayatriNaik
In the document you have attached, the font “Frutinger 45 Light” has been replaced with Adobe Sans MM.
font.png (16.5 KB)
With library version 24.01, conversion in my environment takes place without exception, but the resulting document is not validated as PDF/A3b.
On this occasion, I will create a task for the development team.
Please write if I understood you correctly and if you have any questions.

@GayatriNaik
We have opened the following new ticket(s) in our internal issue tracking system and will deliver their fixes according to the terms mentioned in Free Support Policies.

Issue ID(s): PDFNET-56432

You can obtain Paid Support Services if you need support on a priority basis, along with the direct access to our Paid Support management team.

Yes you are right. On Doing further investigation, we found that when we SubsetFonts, It was throwing exception that the Licencing Limitation dot allow us to Embed Frutiger font.
But the Font is there on my machine so ideally that should also not be the case.

So can you please check why only for specific font which are already present still not allowing me to EMbed / embed subset in PDF

as in case of Frutiger

@GayatriNaik

When converting a document to PDF/A, the font already replaced in the document is used (i.e., work is carried out exclusively with the data of the existing document and, accordingly, no attempt is made to find the original font (Frutiger45Light in this case)).

In order for the “font to be embedded in the document” you must provide it when creating/generating the document.
Make sure that it is actually available in the system when creating the pdf document.
There may be licensing restrictions on the font.
You can set the option to ignore them (Document.DisableFontLicenseVerifications) - however, all responsibility for possible violations will fall on you, and not on the library (carefully read the commentary on this property).

@GayatriNaik
I received more detailed and detailed explanations from the development team. Below I give them to you.

The source document doesn’t contain a definition for the font “Frutiger45Light”, therefore it isn’t possible to make a valid PDF/A document unless the missing font or its substitution is provided. To create a valid PDF/A-3b document the customer may use one of the following techniques:

  • Use a default substitution font instead (for all text that uses Frutiger45Light, the font will be changed to the Times New Roman):
var doc = new Document(dataDir + "Frutiger 45 Light not embedded 1.pdf");
var options = new PdfFormatConversionOptions(PdfFormat.PDF_A_3B, ConvertErrorAction.Delete);

// Replace the inaccessible Frutiger45Light with the default substitution font (Times New Roman)
options.FontEmbeddingOptions.UseDefaultSubstitution = true;

doc.Convert(options);
doc.Save(dataDir + "Result.pdf");
var doc = new Document(dataDir + "Frutiger 45 Light not embedded 1.pdf");

// Replace the inaccessible Frutiger45Light with the user chosen font
FontRepository.Substitutions.Add(new SimpleFontSubstitution("AkagiPro-Book", "Arial"));

doc.Convert(new MemoryStream(), PdfFormat.PDF_A_3B, ConvertErrorAction.Delete);
doc.Save(dataDir + "Result.pdf");
  • Provide the external font definition for the Frutiger45Light font if it’s not installed in the system:
var doc = new Document(dataDir + "Frutiger 45 Light not embedded 1.pdf");

// Add the folder containing the Frutiger45Light font definition to the list of font sources
FontRepository.Sources.Add(new FolderFontSource("path_to_the_folder_with_the_font"));

doc.Convert(new MemoryStream(), PdfFormat.PDF_A_3B, ConvertErrorAction.Delete);
doc.Save(dataDir + "Result.pdf");

Please note that if the Frutiger45Light is installed in the system (its definition is present in the system Fonts folder), it should be applied on the conversion automatically, with no need for adding it to the FontRepository sources collection.