I am using the last version of Aspose.Pdf for .NET (22.5.0) in my .NetCore 3.1 project, but as soon as I start looping the pdfs pages I get the exception “System.NullReferenceException: ‘Object reference not set to an instance of an object.’” when calling “paragraphAbsorber.Visit(page)” for the second page of the pdf.
I also uploaded the file I am struggling with.
Document pdfDocument = new Document(filePath);
// Iterates over the pages
foreach (Page page in pdfDocument.Pages)
{
ParagraphAbsorber paragraphAbsorber = new ParagraphAbsorber();
paragraphAbsorber.Visit(page);
foreach (PageMarkup markup in paragraphAbsorber.PageMarkups)
{
...
}
}
Would you please share your environment details as well e.g. OS Name and Version, Application Type, etc.? Also, please make sure that all Windows Fonts are installed in the system and try again before sharing the requested details.
I have checked and all Windows Fonts are installed in the system. I forgot to mention before, but I am also using the same code in the same environment on a .Net Framework (4.5.2) project with Aspose.PDF (18.3.0) and it works as expected.
As you requested me to check all Windows Fonts are installed, a concern showed up in my mind. How am I supposed to run this application on Linux if I need to install all Microsoft Fonts?
My environment details are:
OS: Microsoft Windows 10
IDE: Microsoft Visual Studio 2019. It’s a C# console application.
Aspose.Pdf version: 22.5.0
In case of Linux or Non Windows environment, it is recommended to install msttcorefonts package so that all Microsoft essential fonts are present in the system. * These fonts should be placed in “/usr/share/fonts/truetype/msttcorefonts” directory as Aspose.PDF for .NET scans this folder on Linux like operating systems. In case operating system has other default folder/directory for fonts, you should use following line of code before performing any operation using Aspose.PDF.
Aspose.Pdf.Text.FontRepository.Sources.Add(new FolderFontSource("<user's path to ms fonts>"));
Furthermore, we tested the scenario in our environment and were unable to notice any issue. Can you kindly share a sample console application in .zip format which can reproduce the same exception that you are facing? Also, please confirm if you are using the API with a valid license. We will further proceed to assist you accordingly.
I have uploaded my console application. Inside you will find the AsposeTest.NetCore.exe, the source code “Program.cs”, the pdf and also some .dll. But I have removed my “Aspose.Pdf.lic” and it will cause the following error “Something went wrong! Cannot find license ‘Aspose.Pdf.lic’.” if there isn’t any license inside the folder.
In this application, I attempt to remove some texts from the pdf’s tables, but I get an error when I call “tableFinder.Visit(page);”. If I skip that, I got the same error at paragraphAbsorber.Visit(page) as I mentioned before.
We are afraid that we could not perform an initial investigation against your case due to other issues in the queue. Nevertheless, we will contact you soon after performing complete testing. Please spare us little time.
We have been able to reproduce the issue in our environment while using the latest version of the API. Therefore, we have logged it as PDFNET-52217 in our issue tracking system. We will further look into its details and keep you posted with the status of its rectification. Please be patient and spare us some time.