NullPointerException when attempting to get all text from PDF

Hello aspose team

I have a problem and i need help !
i used a binary com.aspose.pdf.document and i dont access for this method addLocalFontPath(path); and getLocalFontPaths* ();
The version for this binary is aspose-pdf-19-4.jar

On a another way i need to get local fonts to my docker container

Thank for your help

@pape

Would you please ensure using Aspose.PDF for Java 19.8 and then share your kind feedback with us if the issue persists.

@Farhan.Raza

I test with this version 19.8 but i have a same error !!!

Caused by: java.lang.NullPointerException
converter-service | at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264) ~[?:1.8.0_212]
converter-service | at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219) ~[?:1.8.0_212]
converter-service | at sun.awt.FontConfiguration.init(FontConfiguration.java:107) ~[?:1.8.0_212]
converter-service | at sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:774) ~[?:1.8.0_212]
converter-service | at sun.font.SunFontManager$2.run(SunFontManager.java:431) ~[?:1.8.0_212]
converter-service | at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_212]
converter-service | at sun.font.SunFontManager.(SunFontManager.java:376) ~[?:1.8.0_212]
converter-service | at sun.awt.FcFontManager.(FcFontManager.java:35) ~[?:1.8.0_212]
converter-service | at sun.awt.X11FontManager.(X11FontManager.java:57) ~[?:1.8.0_212]
converter-service | at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_212]
converter-service | at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_212]
converter-service | at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_212]
converter-service | at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_212]
converter-service | at java.lang.Class.newInstance(Class.java:442) ~[?:1.8.0_212]
converter-service | at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:83) ~[?:1.8.0_212]
converter-service | at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_212]
converter-service | at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74) ~[?:1.8.0_212]
converter-service | at sun.java2d.SunGraphicsEnvironment.getFontManagerForSGE(SunGraphicsEnvironment.java:201) ~[?:1.8.0_212]
converter-service | at sun.java2d.SunGraphicsEnvironment.getAllFonts(SunGraphicsEnvironment.java:220) ~[?:1.8.0_212]
converter-service | at sun.java2d.HeadlessGraphicsEnvironment.getAllFonts(HeadlessGraphicsEnvironment.java:91) ~[?:1.8.0_212]
converter-service | at com.aspose.pdf.internal.l4k.l0v.lk(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l4k.l0v.(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l4k.l0v.(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l4k.l0v$2.lI(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l4k.l0v$2.lf(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l13u.lI.lb(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l4k.l0v.lj(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l5if.lI.lI(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l4k.l1h.lk(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l4k.l1h.l0n(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l4k.l1h.l1h(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l3h.lI.lI(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l3h.lb.lI(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l2y.lu.lj(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l2y.lu.lb(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l2y.lu.lf(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l2y.lu.lf(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.ApsUsingConverter.lI(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.ApsUsingConverter.lf(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.l4if.lI(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.ADocument.lj(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.ADocument.lj(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.ADocument.lf(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.Document.lf(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.ADocument.lI(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.ADocument.save(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]

@Farhan.Raza

I test with this version 19.8 but i have a same error !!!

Caused by: java.lang.NullPointerException
sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264) ~[?:1.8.0_212]
converter-service | at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219) ~[?:1.8.0_212]
converter-service | at sun.awt.FontConfiguration.init(FontConfiguration.java:107) ~[?:1.8.0_212]
converter-service | at sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:774) ~[?:1.8.0_212]
converter-service | at sun.font.SunFontManager$2.run(SunFontManager.java:431) ~[?:1.8.0_212]
converter-service | at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_212]
converter-service | at sun.font.SunFontManager.(SunFontManager.java:376) ~[?:1.8.0_212]
converter-service | at sun.awt.FcFontManager.(FcFontManager.java:35) ~[?:1.8.0_212]
converter-service | at sun.awt.X11FontManager.(X11FontManager.java:57) ~[?:1.8.0_212]
converter-service | at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_212]
converter-service | at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_212]
converter-service | at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_212]
converter-service | at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_212]
converter-service | at java.lang.Class.newInstance(Class.java:442) ~[?:1.8.0_212]
converter-service | at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:83) ~[?:1.8.0_212]
converter-service | at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_212]
converter-service | at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74) ~[?:1.8.0_212]
converter-service | at sun.java2d.SunGraphicsEnvironment.getFontManagerForSGE(SunGraphicsEnvironment.java:201) ~[?:1.8.0_212]
converter-service | at sun.java2d.SunGraphicsEnvironment.getAllFonts(SunGraphicsEnvironment.java:220) ~[?:1.8.0_212]
converter-service | at sun.java2d.HeadlessGraphicsEnvironment.getAllFonts(HeadlessGraphicsEnvironment.java:91) ~[?:1.8.0_212]
converter-service | at com.aspose.pdf.internal.l4k.l0v.lk(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l4k.l0v.(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l4k.l0v.(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l4k.l0v$2.lI(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l4k.l0v$2.lf(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l13u.lI.lb(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l4k.l0v.lj(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l5if.lI.lI(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l4k.l1h.lk(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l4k.l1h.l0n(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l4k.l1h.l1h(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l3h.lI.lI(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l3h.lb.lI(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l2y.lu.lj(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l2y.lu.lb(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l2y.lu.lf(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.internal.l2y.lu.lf(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.ApsUsingConverter.lI(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.ApsUsingConverter.lf(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.l4if.lI(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.ADocument.lj(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.ADocument.lj(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.ADocument.lf(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.Document.lf(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.ADocument.lI(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]
converter-service | at com.aspose.pdf.ADocument.save(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]

@pape

Thank you for elaborating further.

Please note that getLocalFontPaths and setLocalFontPaths are now exposed by FontRepository class. You may refer to API references for your kind reference and then share your kind feedback with us.

String path = "D:\\Test\\Fonts\\";
List<String> fontPaths = FontRepository.getLocalFontPaths();
fontPaths.add(path);
FontRepository.setLocalFontPaths(fontPaths);

@Farhan.Raza

Thank for you response but i tnink a problem is when i try to open a pdf on my docker container i have a this exception => at com.aspose.pdf.Document.lf(Unknown Source) ~[aspose-pdf-19.8.jar!/:?]

expemle to open a pdf on aspose pdf => com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(“documentPath”)

And i have a question : can aspose pdf be used to docker container ?

Thnak for you response.

@pape

Yes, Aspose.PDF API can be used in Docker container. Would you please elaborate if you are facing this problem with a specific file or with every file. Moreover, the code snippet you had referred to, in your previous reply is now obsolete and should be replace by the code suggested by us above.

@Farhan.Raza
I found a problem to fixe a bug for openjdk:8-jre-alpine distribution
To solve this bug it should run this command to a docker container
RUN apk --no-cache add msttcorefonts-installer fontconfig &&
update-ms-fonts &&
fc-cache -f

Thank

@pape

Thank you for your worthy input.

This can help other community members if they face this issue in similar environment. We appreciate your contribution.

I using aspose pdf in docker base on openjdk:8-jre-alpine

val pdfDocument = new Document(s"/cv/docs/myfile.pdf")

val textFragmentAbsorber = new TextFragmentAbsorber(“986520411”)

pdfDocument.getPages.accept(textFragmentAbsorber)

It throw Exception

Caused by: java.lang.NullPointerException: null

at com.aspose.pdf.internal.l5t.ly.lf(Unknown Source)

at com.aspose.pdf.internal.l5t.ly.ly(Unknown Source)

at com.aspose.pdf.internal.l5t.l0t.lI(Unknown Source)

at com.aspose.pdf.internal.l5t.l0t.lI(Unknown Source)

at com.aspose.pdf.internal.l5t.l0t.le(Unknown Source)

at com.aspose.pdf.internal.l5t.l0t.(Unknown Source)

at com.aspose.pdf.internal.l5t.l0t.(Unknown Source)

at com.aspose.pdf.TextFragmentAbsorber.visit(Unknown Source)

at com.aspose.pdf.Page.accept(Unknown Source)

at com.aspose.pdf.PageCollection.accept(Unknown Source)

@vinhbt

Would you please confirm if you tried above solution to prevent the exception you are facing. If so and you are still facing the issue, please share your complete environment details along with sample PDF document. We will test the scenario in our environment and address it accordingly.