Posted by
PartTimeDataScientist on
May 02, 2020; 9:47pm
URL: https://discuss.asciidoctor.org/Error-Icon-font-not-found-for-set-fas-using-asciidoctorj-pdf-in-OSGi-environment-tp7969.html
Hi,
I am trying to use asciidoctorj and asciidoctorj-pdf in an OSGi environment (developing a plugin for an Eclipse application). Doing so I have troubles to get the font-awesome icons to be included into the rendered .pdf-file with the error:
Execute failed: org.jruby.exceptions.StandardError: (UnknownFont) Icon font not found for set: fasI am loading the gems as documented
here. (Details below). The yml-stylesheet is loaded properly (using the code given below) from within the bundled plugin (verfied by changing a few colors and sizes) but I cannot get icons to render properly. I have already tried to set a custom pdf-fontsdir in a similar way as for the stylesheet without success.
Caused by: org.jruby.exceptions.StandardError: (UnknownFont) Icon font not found for set: fas
at RUBY.path(uri:classloader:/gems/prawn-icon-2.5.0/lib/prawn/icon/font_data.rb:70)
at RUBY.load_fonts(uri:classloader:/gems/prawn-icon-2.5.0/lib/prawn/icon/font_data.rb:61)
at RUBY.initialize(uri:classloader:/gems/prawn-icon-2.5.0/lib/prawn/icon/font_data.rb:49)
at RUBY.load(uri:classloader:/gems/prawn-icon-2.5.0/lib/prawn/icon/font_data.rb:20)
at RUBY.initialize(uri:classloader:/gems/prawn-icon-2.5.0/lib/prawn/icon/interface.rb:187)
at RUBY.make_icon(uri:classloader:/gems/prawn-icon-2.5.0/lib/prawn/icon/interface.rb:89)
at RUBY.icon(uri:classloader:/gems/prawn-icon-2.5.0/lib/prawn/icon/interface.rb:66)
at RUBY.convert_admonition(uri:classloader:/gems/asciidoctor-pdf-1.5.3/lib/asciidoctor/pdf/converter.rb:808)
at RUBY.init_bounding_box(uri:classloader:/gems/prawn-2.2.2/lib/prawn/document/bounding_box.rb:196)
at RUBY.bounding_box(uri:classloader:/gems/prawn-2.2.2/lib/prawn/document/bounding_box.rb:157)
at RUBY.convert_admonition(uri:classloader:/gems/asciidoctor-pdf-1.5.3/lib/asciidoctor/pdf/converter.rb:797)
at RUBY.float(uri:classloader:/gems/prawn-2.2.2/lib/prawn/document.rb:364)
at RUBY.convert_admonition(uri:classloader:/gems/asciidoctor-pdf-1.5.3/lib/asciidoctor/pdf/converter.rb:796)
at RUBY.pad_box(uri:classloader:/gems/asciidoctor-pdf-1.5.3/lib/asciidoctor/pdf/ext/prawn/extensions.rb:526)
at RUBY.convert_admonition(uri:classloader:/gems/asciidoctor-pdf-1.5.3/lib/asciidoctor/pdf/converter.rb:777)
at org.jruby.RubyBasicObject.instance_exec(org/jruby/RubyBasicObject.java:2680)
at RUBY.keep_together(uri:classloader:/gems/asciidoctor-pdf-1.5.3/lib/asciidoctor/pdf/ext/prawn/extensions.rb:902)
at RUBY.convert_admonition(uri:classloader:/gems/asciidoctor-pdf-1.5.3/lib/asciidoctor/pdf/converter.rb:774)
at RUBY.convert(uri:classloader:/gems/asciidoctor-pdf-1.5.3/lib/asciidoctor/pdf/converter.rb:138)
at RUBY.convert(uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/abstract_block.rb:75)
at RUBY.content(uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/abstract_block.rb:84)
at org.jruby.RubyArray.map(org/jruby/RubyArray.java:2580)
at RUBY.content(uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/abstract_block.rb:84)
at RUBY.content(uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/block.rb:111)
at RUBY.traverse(uri:classloader:/gems/asciidoctor-pdf-1.5.3/lib/asciidoctor/pdf/converter.rb:155)
at RUBY.convert_preamble(uri:classloader:/gems/asciidoctor-pdf-1.5.3/lib/asciidoctor/pdf/converter.rb:686)
at RUBY.convert(uri:classloader:/gems/asciidoctor-pdf-1.5.3/lib/asciidoctor/pdf/converter.rb:138)
at RUBY.convert(uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/abstract_block.rb:75)
at RUBY.content(uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/abstract_block.rb:84)
at org.jruby.RubyArray.map(org/jruby/RubyArray.java:2580)
at RUBY.content(uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/abstract_block.rb:84)
at RUBY.content(uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/document.rb:1020)
at RUBY.traverse(uri:classloader:/gems/asciidoctor-pdf-1.5.3/lib/asciidoctor/pdf/converter.rb:155)
at RUBY.convert_document(uri:classloader:/gems/asciidoctor-pdf-1.5.3/lib/asciidoctor/pdf/converter.rb:267)
at RUBY.indent_section(uri:classloader:/gems/asciidoctor-pdf-1.5.3/lib/asciidoctor/pdf/converter.rb:596)
at RUBY.convert_document(uri:classloader:/gems/asciidoctor-pdf-1.5.3/lib/asciidoctor/pdf/converter.rb:214)
at RUBY.convert(uri:classloader:/gems/asciidoctor-pdf-1.5.3/lib/asciidoctor/pdf/converter.rb:138)
at RUBY.convert(uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/document.rb:951)
at RUBY.convert(uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:118)
I don't know if this is helpful, but Process Monitor shows strange unsucessful tries to ruby files which shuld all be located somewhere in prawn-icon-2.5.0 which looks strange to me:

Sorry for the somewhat lengthy post but I wanted to include as much of the information that I thought could be helpful for debuging as possible.
Hope you can help me sorting this out.
Thanks in advance!
Lars
// "Supporting Information"// Main code for referencing files included in bundled plugin
IPath stylesheetDir = new Path(File.separator + "pdf_themes");
IPath fontsfileDir = new Path(File.separator + "fonts");
IPath stylesheetFile = new Path(File.separator + "pdf_themes" + File.separator + "default-theme.yml");
Bundle pluginBundle = FrameworkUtil.getBundle( getClass() );
URL urlStylesheetDir = FileLocator.find(pluginBundle, stylesheetDir, null);
URL urlFontsDir = FileLocator.find(pluginBundle, fontsfileDir, null);
URL urlStylesheetFile = FileLocator.find(pluginBundle, stylesheetFile, null);
stylesDir = FileLocator.toFileURL(urlStylesheetDir);
fontsDir = FileLocator.toFileURL(urlFontsDir);
styleSheet = FileLocator.toFileURL(urlStylesheetFile);
AttributesBuilder attrs = attributes()
.attribute("pdf-stylesdir", stylesDir.getPath())
.attribute("pdf-style", "default-theme.yml")
.attribute("pdf-fontsdir", fontsDir.getPath())
.icons(org.asciidoctor.Attributes.FONT_ICONS)
.iconFontRemote(true)
.allowUriRead(true);
// Code block for loading the gems
Asciidoctor asciidoctor = create(Arrays.asList(
//gems from asciidoctorj 2.2.0
"uri:classloader:/gems/asciidoctor-2.0.10/lib",
"uri:classloader:/gems/tilt-2.0.9/lib",
"uri:classloader:/gems/thread_safe-0.3.6-java/lib",
"uri:classloader:/gems/temple-0.8.2/lib",
"uri:classloader:/gems/slim-4.0.1/lib",
"uri:classloader:/gems/rouge-3.12.0/lib",
"uri:classloader:/gems/open-uri-cached-0.0.5/lib",
"uri:classloader:/gems/haml-5.0.4/lib",
"uri:classloader:/gems/erubis-2.7.0/lib",
"uri:classloader:/gems/concurrent-ruby-1.0.5-java/lib",
"uri:classloader:/gems/coderay-1.1.2/lib",
"uri:classloader:/gems/asciidoctor-2.0.10/lib",
//gems from asciidoctorj-pdf
"uri:classloader:/gems/asciidoctor-pdf-1.5.3/lib",
"uri:classloader:/gems/ttfunk-1.5.1/lib",
"uri:classloader:/gems/treetop-1.6.10/lib",
"uri:classloader:/gems/thread_safe-0.3.6-java/lib",
"uri:classloader:/gems/text-hyphen-1.4.1/lib",
"uri:classloader:/gems/safe_yaml-1.0.5/lib",
"uri:classloader:/gems/ruby-rc4-0.1.5/lib",
"uri:classloader:/gems/rouge-3.16.0/lib",
"uri:classloader:/gems/rghost-0.9.7/lib",
"uri:classloader:/gems/public_suffix-1.4.6/lib",
"uri:classloader:/gems/prawn-templates-0.1.2/lib",
"uri:classloader:/gems/prawn-table-0.2.2/lib",
"uri:classloader:/gems/prawn-svg-0.30.0/lib",
"uri:classloader:/gems/prawn-icon-2.5.0/lib",
"uri:classloader:/gems/prawn-2.2.2/lib",
"uri:classloader:/gems/polyglot-0.3.5/lib",
"uri:classloader:/gems/pdf-reader-2.4.0/lib",
"uri:classloader:/gems/pdf-core-0.7.0/lib",
"uri:classloader:/gems/hashery-2.1.2/lib",
"uri:classloader:/gems/css_parser-1.7.1/lib",
"uri:classloader:/gems/concurrent-ruby-1.1.6/lib",
"uri:classloader:/gems/Ascii85-1.0.3/lib",
"uri:classloader:/gems/afm-0.2.2/lib",
"uri:classloader:/gems/addressable-2.4.0/lib"));