Successful PDF/A-1b conversion creates invalid PDF/A due to fonts

Using Aspose.PDF .NET 25.10, I am converting the attached file using following code:

using (var document = new Aspose.Pdf.Document(pdfPath))
{
    var options = new Aspose.Pdf.PdfFormatConversionOptions(Aspose.Pdf.PdfFormat.PDF_A_1B)
    {
        LogFileName = tempOutputPath + ".txt",
        ErrorAction = Aspose.Pdf.ConvertErrorAction.Delete,
        TransparencyAction = Aspose.Pdf.ConvertTransparencyAction.Mask,
        IsTransferInfo = true,
    };

    var success = document.Convert(options);

    if (success)
    {
        document.Save(tempOutputPath);
    }
}

It claims success from Aspose, but:

  • It fails Acrobat preflight with “Charset incomplete” error for Unit-Regular.
  • Same PDF is successful using Acrobat and other vendors, and they do not make it a 2MB file (they are under 400KB).
  • It embeds SegoeUISymbol for no apparent reason.

6581_sdw_2008_8_S21.pdf (457.3 KB)

Thanks,
Mark

@markmanley.adlib

Summary
The conversion call returns true because, from Aspose.PDF’s point of view, the process completed without a fatal error. However, the resulting PDF/A‑1b file may still contain issues such as missing glyphs, font substitution (e.g., an unexpected Segoe UI Symbol font), and Acrobat Preflight warnings like “Charset incomplete” for the original Unit‑Regular font. These problems usually stem from how the SDK handles font embedding and substitution when the source PDF does not fully embed the required fonts.

Why it happens

  1. Font‑embedding fallback – During PDF/A conversion Aspose.PDF tries to embed every font used in the source. If a glyph is not present in the embedded subset or the original font is not fully embedded, the engine may replace the missing characters with a fallback font (often Segoe UI Symbol). The conversion still reports success because the operation itself did not fail.
  2. ErrorAction = Delete – With ConvertErrorAction.Delete the SDK silently removes characters that cannot be represented, so no exception is thrown and Convert returns true.
  3. Log file contains details – The LogFileName option writes a conversion log that lists missing glyphs, font substitutions, and any PDF/A compliance warnings. If you do not inspect this file you will miss the root cause.
  4. Subset embedding – The default FontEmbeddingMode.Subset may drop glyphs that are not used in the current page, which can trigger the “Charset incomplete” warning in Acrobat.
  5. Version‑specific bugs – Some users have reported font‑handling regressions in Aspose.PDF .NET 25.10 that were fixed in later releases (e.g., 25.12+). Without testing the exact version you are using, it is difficult to know whether the issue is a bug or a configuration problem.

What to do next

  1. Examine the conversion log
var options = new Aspose.Pdf.PdfFormatConversionOptions(Aspose.Pdf.PdfFormat.PDF_A_1B)
{
LogFileName = tempOutputPath + ".txt",
// other options …
};
document.Convert(options);
// Open the .txt file and look for lines like "Missing glyphs", "Font substitution", or "Charset incomplete".
  1. Change error handling to see the problem
options.ErrorAction = Aspose.Pdf.ConvertErrorAction.Throw;
try
{
bool success = document.Convert(options);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message); // will list missing glyphs / fonts
}
  1. Force full font embedding (if licensing permits)
options.FontEmbeddingMode = Aspose.Pdf.FontEmbeddingMode.EmbedAll; // embed the whole font
options.FontSubstitutionMode = Aspose.Pdf.FontSubstitutionMode.Disable; // optional, prevents automatic fallback
  1. Provide an explicit substitution table when full embedding is not possible
var table = new Aspose.Pdf.FontSubstitutionTable();
table.Add("Unit-Regular", "ArialUnicodeMS"); // map to a font that covers all required Unicode blocks
options.FontSubstitutionTable = table;
  1. Validate the output
  • Use a tool such as pdffonts (Poppler) or Acrobat → File → Properties → Fonts to confirm that Unit‑Regular is now embedded and Segoe UI Symbol is absent.
  • Re‑run Acrobat Preflight; the “Charset incomplete” warning should disappear.
  1. Upgrade Aspose.PDF – If you are on 25.10, try the latest stable version (e.g., 25.12 or newer). Release notes mention several font‑handling improvements that may resolve this behavior.
  2. If the issue persists, gather diagnostic data for Aspose support
  • Full conversion log file.
  • Exception details when ErrorAction = Throw.
  • Font lists of the source PDF and the generated PDF (pdffonts output).
  • Exact SDK version and build number.

Note: The evidence available does not contain a specific Aspose.PDF PDF/A‑1b conversion case, so the above steps are based on typical SDK behavior and documented options. Please try the suggested diagnostics; if the problem remains, providing the log and version information to Aspose support will be essential for a definitive fix.

:warning: I could not fully verify this explanation against the retrieved sources. Please double-check the behaviour in your environment and confirm the exact SDK/version.

None of this is valid and some suggestions don’t even map to 25.10. Please have a real person look at this. I provided everything to reproduce.

Thanks,
Mark

@markmanley.adlib

Would you kindly share the generated output along with a screenshot of the results you are noticing in Adobe Preflight? We will log an investigation ticket in our issue management system for analysis and share the ID with you.

Here is the preflight errors for attached “6581_sdw_2008_8_S21.pdf.Aspose.pdf” (you can ignore the XMP errors as I have that being fixed in PDFNET-60993):
image.png (36.9 KB)

I have also attached fully successful conversions by Acrobat and Apryse.

It’s worth noting that neither Acrobat nor Apryse are adding the “SegoeUISymbol” font, but the preflight errors are related to the existing “Unit-Regular” font. The file size is almost 4x the size of the others too.

Regards,
Mark
6581_sdw_2008_8_S21.pdf.Aspose.pdf (2.0 MB)

6581_sdw_2008_8_S21_Acrobat.pdf (358.4 KB)

6581_sdw_2008_8_S21_Apryse.pdf (359.3 KB)

@markmanley.adlib

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-61238

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.

Can you elaborate on the fix? I ask because we have a lot of font embedding related issues with Aspose, where it’s being made apparent due to PDF/A preflight checks.

I am happy to provide more samples where other tools have no issues with font subset embedding and Aspose is not able to properly do it.

@markmanley.adlib

The ticket has been logged to perform investigation against your specific PDF document. It will be carried out on first-come, first-served basis as per free support policies and as soon as we have some feedback to share regarding issue resolution, we will inform you via this forum thread.

If you are facing similar issues with other types of PDF documents, please feel free to share them with respective screenshots of the errors by Adobe Preflight. We will log dedicated ticket(s) for those files and shared the IDs with you.