This question has been asked within another forum:
https://mail-archives.apache.org/mod_mbox/xmlgraphics-fop-users/201205.mbox/%3c4fc74204.4040...@takoma.fr%3E

On Thu, Apr 14, 2016 at 12:34 PM, Bilgin Ibryam <bibr...@gmail.com> wrote:

> It might be better to ask this in the FOP list and find out why fonts
> might be missing and how to pass them. Then we can figure it out how
> to do it with Camel in/out of OSGI.
>
> On 14 April 2016 at 11:05, Laurentiu Trica <laurentiu.tr...@moredevs.ro>
> wrote:
> > Hi,
> >
> > No, I don't think it's related to your change, but it's an issue I have
> to
> > overcome.
> > I don't know how I'd pass the fonts in a non OSGI environment...
> >
> > I'm only working with Camel in OSGI, does anyone have any ideas on how to
> > make this work?
> >
> > Thanks,
> > Laurentiu
> >
> > On Thu, Apr 14, 2016 at 1:02 PM, Bilgin Ibryam <bibr...@gmail.com>
> wrote:
> >
> >> Is that related my change in the component? How would you pass the
> >> fonts in a non-osgi environment?
> >>
> >> On 14 April 2016 at 08:03, Laurentiu Trica <laurentiu.tr...@moredevs.ro
> >
> >> wrote:
> >> > Hi Bilgin,
> >> >
> >> > Thank you, sorry for the late response.
> >> > I tried your update and it seems to work, but now I get this error:
> >> >
> >> > javax.xml.transform.TransformerException:
> >> > org.apache.fop.pdf.PDFConformanceException: For PDF/A-1b, all fonts,
> even
> >> > the base 14 fonts, have to be embedded! Offending font: /Helvetica
> >> > at
> >> >
> >>
> com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:749)[:1.7.0_95]
> >> > at
> >> >
> >>
> com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:353)[:1.7.0_95]
> >> > at
> >> >
> >>
> de.edigrid.util.fop.FopProducer.transform(FopProducer.java:89)[520:org.apache.camel.camel-fop:2.13.2]
> >> > at
> >> >
> >>
> de.edigrid.util.fop.FopProducer.process(FopProducer.java:64)[520:org.apache.camel.camel-fop:2.13.2]
> >> > at
> >> >
> >>
> org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)[84:org.apache.camel.camel-core:2.14.1]
> >> > at
> >> >
> >>
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:120)[84:org.apache.camel.camel-core:2.14.1]
> >> > at
> >> >
> >>
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)[84:org.apache.camel.camel-core:2.14.1]
> >> > at
> >> >
> >>
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:416)[84:org.apache.camel.camel-core:2.14.1]
> >> > at
> >> >
> >>
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[84:org.apache.camel.camel-core:2.14.1]
> >> > at
> >> >
> >>
> org.apache.camel.processor.Pipeline.process(Pipeline.java:118)[84:org.apache.camel.camel-core:2.14.1]
> >> > at
> >> >
> >>
> org.apache.camel.processor.Pipeline.process(Pipeline.java:80)[84:org.apache.camel.camel-core:2.14.1]
> >> > at
> >> >
> >>
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[84:org.apache.camel.camel-core:2.14.1]
> >> > at
> >> >
> >>
> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:433)[84:org.apache.camel.camel-core:2.14.1]
> >> > at
> >> >
> >>
> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:211)[84:org.apache.camel.camel-core:2.14.1]
> >> > at
> >> >
> >>
> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:175)[84:org.apache.camel.camel-core:2.14.1]
> >> > at
> >> >
> >>
> org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:187)[84:org.apache.camel.camel-core:2.14.1]
> >> > at
> >> >
> >>
> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:114)[84:org.apache.camel.camel-core:2.14.1]
> >> > at
> >> >
> >>
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)[:1.7.0_95]
> >> > at
> >> >
> >>
> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)[:1.7.0_95]
> >> > at
> >> >
> >>
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)[:1.7.0_95]
> >> > at
> >> >
> >>
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)[:1.7.0_95]
> >> > at
> >> >
> >>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_95]
> >> > at
> >> >
> >>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_95]
> >> > at java.lang.Thread.run(Thread.java:745)[:1.7.0_95]
> >> > Caused by: org.apache.fop.pdf.PDFConformanceException: For PDF/A-1b,
> all
> >> > fonts, even the base 14 fonts, have to be embedded! Offending font:
> >> > /Helvetica
> >> > at
> >> >
> >>
> org.apache.fop.pdf.PDFFont.validate(PDFFont.java:169)[515:org.apache.servicemix.bundles.fop:1.1.0.1]
> >> > at
> >> >
> >>
> org.apache.fop.pdf.PDFFont.output(PDFFont.java:178)[515:org.apache.servicemix.bundles.fop:1.1.0.1]
> >> > at
> >> >
> >>
> org.apache.fop.pdf.PDFDocument.outputIndirectObject(PDFDocument.java:951)[515:org.apache.servicemix.bundles.fop:1.1.0.1]
> >> > at
> >> >
> >>
> org.apache.fop.pdf.PDFDocument.streamIndirectObject(PDFDocument.java:918)[515:org.apache.servicemix.bundles.fop:1.1.0.1]
> >> > at
> >> >
> >>
> org.apache.fop.pdf.PDFDocument.output(PDFDocument.java:912)[515:org.apache.servicemix.bundles.fop:1.1.0.1]
> >> > at
> >> >
> >>
> org.apache.fop.pdf.PDFDocument.outputTrailer(PDFDocument.java:995)[515:org.apache.servicemix.bundles.fop:1.1.0.1]
> >> > at
> >> >
> >>
> org.apache.fop.render.pdf.PDFDocumentHandler.endDocument(PDFDocumentHandler.java:172)[515:org.apache.servicemix.bundles.fop:1.1.0.1]
> >> > at
> >> >
> >>
> org.apache.fop.render.intermediate.util.IFDocumentHandlerProxy.endDocument(IFDocumentHandlerProxy.java:192)[515:org.apache.servicemix.bundles.fop:1.1.0.1]
> >> > at
> >> >
> >>
> org.apache.fop.render.intermediate.IFRenderer.stopRenderer(IFRenderer.java:296)[515:org.apache.servicemix.bundles.fop:1.1.0.1]
> >> > at
> >> >
> >>
> org.apache.fop.area.RenderPagesModel.endDocument(RenderPagesModel.java:265)[515:org.apache.servicemix.bundles.fop:1.1.0.1]
> >> > at
> >> >
> >>
> org.apache.fop.area.AreaTreeHandler.endDocument(AreaTreeHandler.java:342)[515:org.apache.servicemix.bundles.fop:1.1.0.1]
> >> > at
> >> >
> >>
> org.apache.fop.fo.FOTreeBuilder.endDocument(FOTreeBuilder.java:168)[515:org.apache.servicemix.bundles.fop:1.1.0.1]
> >> > at
> >> >
> >>
> com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.endDocument(ToXMLSAXHandler.java:185)[:1.7.0_95]
> >> > at org.apache.xerces.parsers.AbstractSAXParser.endDocument(Unknown
> >> > Source)[:]
> >> > at org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(Unknown
> >> > Source)[:]
> >> > at org.apache.xerces.impl.XMLEntityManager.endEntity(Unknown
> Source)[:]
> >> > at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source)[:]
> >> > at org.apache.xerces.impl.XMLEntityScanner.skipSpaces(Unknown
> Source)[:]
> >> > at
> >> >
> >>
> org.apache.xerces.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatch(Unknown
> >> > Source)[:]
> >> > at
> >> >
> >>
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> >> > Source)[:]
> >> > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> Source)[:]
> >> > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> Source)[:]
> >> > at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)[:]
> >> > at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> Source)[:]
> >> > at
> >> >
> >>
> com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:644)[:1.7.0_95]
> >> > at
> >> >
> >>
> com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:740)[:1.7.0_95]
> >> > ... 23 more
> >> >
> >> > How can I embed the fonts? I'm using Camel from a bundle in
> Servicemix,
> >> so
> >> > I'd need to be able to get the font from the classpath.
> >> >
> >> > Regards,
> >> > Laurentiu
> >> >
> >> > On Tue, Apr 5, 2016 at 12:46 AM, Bilgin Ibryam <bibr...@gmail.com>
> >> wrote:
> >> >
> >> >> Hi Laurentiu,
> >> >>
> >> >> I just extended FOP component with the following header which lets
> you
> >> >> set parameters to getRendererOptions.
> >> >>
> >> >> So in your case it would be:
> >> >>
> >> >> <setHeader headerName="CamelFop.RendererOptions.pdf-a-mode">
> >> >> <constant>PDF/A-1b</constant>
> >> >> </setHeader>
> >> >>
> >> >> Basically FOP userAgent object is not an easy one that can be
> >> >> autoamted and set through convention. Some values are set as fields
> to
> >> >> userAgent (in Camel that would be with CamelFop.Render. header), some
> >> >> have to be set to userAgent.getRendererOptions() (in Camel that will
> >> >> be with CamelFop.RendererOptions) and some are set as Map to
> >> >> userAgent.getRendererOptions() (in Camel that is for example through
> >> >> CamelFop.Encrypt header).
> >> >>
> >> >> Can you try Camel master and let me know whether it works for you or
> not
> >> >> please?
> >> >>
> >> >> Cheers,
> >> >>
> >> >>
> >> >>
> >> >> On 1 April 2016 at 07:30, Laurentiu Trica <
> laurentiu.tr...@moredevs.ro>
> >> >> wrote:
> >> >> > Hi,
> >> >> >
> >> >> > It is possible with Apache FOP, and the needed parameter is:
> >> -pdfprofile
> >> >> > PDF/A-1b
> >> >> >
> >> >> > Usage (command line)
> >> >> > <https://xmlgraphics.apache.org/fop/1.1/pdfa.html#command-line>
> >> >> >
> >> >> > To activate PDF/A-1b from the command-line, specify "-pdfprofile
> >> >> PDF/A-1b"
> >> >> > as a parameter. If there is a violation of one of the validation
> rules
> >> >> for
> >> >> > PDF/A, an error message is presented and the processing stops.
> >> >> >
> >> >> > PDF/A-1a is enabled by specifying "-pdfprofile PDF/A-1a".
> >> >> > Usage (embedded) <
> >> >> https://xmlgraphics.apache.org/fop/1.1/pdfa.html#embedded>
> >> >> >
> >> >> > When FOP is embedded in another Java application you can set a
> special
> >> >> > option on the renderer options in the user agent to activate the
> >> PDF/A-1b
> >> >> > profile. Here's an example:
> >> >> >
> >> >> > userAgent.getRendererOptions().put("pdf-a-mode", "PDF/A-1b");Fop
> fop =
> >> >> > fopFactory.newFop(MimeConstants.MIME_PDF, userAgent);[..]
> >> >> >
> >> >> > If one of the validation rules of PDF/A is violated, an
> >> >> > PDFConformanceException (descendant of RuntimeException) is thrown.
> >> >> >
> >> >> > For PDF/A-1a, just use the string "PDF/A-1a" instead of "PDF/A-1b".
> >> >> > Regards,
> >> >> > Laurentiu
> >> >> >
> >> >> >
> >> >> > On Fri, Apr 1, 2016 at 7:55 AM, Claus Ibsen <claus.ib...@gmail.com
> >
> >> >> wrote:
> >> >> >
> >> >> >> I suggest to research whether its possible with Apache Fop and
> then
> >> >> >> see what may be missing in camel-fop to do this. After all
> camel-fop
> >> >> >> can only do what Apache Fop can do.
> >> >> >>
> >> >> >> On Thu, Mar 31, 2016 at 2:23 PM, Laurentiu Trica
> >> >> >> <laurentiu.tr...@moredevs.ro> wrote:
> >> >> >> > Hello,
> >> >> >> >
> >> >> >> > Do you know any other way to do this?
> >> >> >> > Can the component be updated to include this?
> >> >> >> > Can I use a custom fopFactory for this?
> >> >> >> >
> >> >> >> > This is kind of urgent for me.
> >> >> >> >
> >> >> >> > Regards,
> >> >> >> > Laurentiu
> >> >> >> >
> >> >> >> > On Wed, Mar 30, 2016 at 10:03 AM, Laurentiu Trica <
> >> >> >> > laurentiu.tr...@moredevs.ro> wrote:
> >> >> >> >
> >> >> >> >> Hi Ibryam,
> >> >> >> >>
> >> >> >> >> I tried that header but it doesn't seem to work. The output
> looks
> >> the
> >> >> >> same
> >> >> >> >> (same number of bytes, doesn't pass the PDF/A checks
> >> >> >> >> http://www.pdf-tools.com/pdf/validate-pdfa-online.aspx)
> >> >> >> >>
> >> >> >> >> <setHeader headerName="CamelFop.Render.pdf-a-mode">
> >> >> >> >> <constant>PDF/A-1b</constant>
> >> >> >> >> </setHeader>
> >> >> >> >>
> >> >> >> >> Do you have other ideas?
> >> >> >> >>
> >> >> >> >> Regards,
> >> >> >> >> Laurentiu
> >> >> >> >>
> >> >> >> >> On Tue, Mar 29, 2016 at 10:46 PM, Bilgin Ibryam <
> >> bibr...@gmail.com>
> >> >> >> wrote:
> >> >> >> >>
> >> >> >> >>> Can you try to set the following header and see if it works
> >> >> >> >>>
> >> >> >> >>> CamelFop.Render.pdf-a-mode: "PDF/A-1b"
> >> >> >> >>>
> >> >> >> >>> HTH,
> >> >> >> >>> B
> >> >> >> >>>
> >> >> >> >>>
> >> >> >> >>> On 29 March 2016 at 09:46, Laurentiu Trica <
> >> >> >> laurentiu.tr...@moredevs.ro>
> >> >> >> >>> wrote:
> >> >> >> >>> > Hello,
> >> >> >> >>> >
> >> >> >> >>> > I need to generate PDF/A files using Camel FOP component.
> >> >> >> >>> > I don't see anything about the PDF/A standard in the
> >> >> documentation:
> >> >> >> >>> > http://camel.apache.org/fop.html
> >> >> >> >>> >
> >> >> >> >>> > Can this be done?
> >> >> >> >>> > Apache FOP can do this:
> >> >> >> >>> > https://xmlgraphics.apache.org/fop/1.1/pdfa.html
> >> >> >> >>> >
> >> >> >> >>> > Can I use the CamelFop.Output.Format to set the output
> format?
> >> >> >> >>> >
> >> >> >> >>> > Thank you!
> >> >> >> >>> >
> >> >> >> >>> > Regards,
> >> >> >> >>> > Laurentiu
> >> >> >> >>>
> >> >> >> >>>
> >> >> >> >>>
> >> >> >> >>> --
> >> >> >> >>> Bilgin Ibryam
> >> >> >> >>> Camel Committer at ASF & Integration Architect at Red Hat
> >> >> >> >>> Blog: http://ofbizian.com | Twitter: @bibryam
> >> >> >> >>>
> >> >> >> >>> Camel Design Patterns
> https://leanpub.com/camel-design-patterns
> >> >> >> >>> Instant Apache Camel Message Routing
> >> >> >> http://www.amazon.com/dp/1783283475
> >> >> >> >>>
> >> >> >> >>
> >> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >> --
> >> >> >> Claus Ibsen
> >> >> >> -----------------
> >> >> >> http://davsclaus.com @davsclaus
> >> >> >> Camel in Action 2: https://www.manning.com/ibsen2
> >> >> >>
> >> >>
> >> >>
> >> >>
> >> >> --
> >> >> Bilgin Ibryam
> >> >> Camel Committer at ASF & Integration Architect at Red Hat
> >> >> Blog: http://ofbizian.com | Twitter: @bibryam
> >> >>
> >> >> Camel Design Patterns https://leanpub.com/camel-design-patterns
> >> >> Instant Apache Camel Message Routing
> >> http://www.amazon.com/dp/1783283475
> >> >>
> >>
> >>
> >>
> >> --
> >> Bilgin Ibryam
> >> Camel Committer at ASF & Integration Architect at Red Hat
> >> Blog: http://ofbizian.com | Twitter: @bibryam
> >>
> >> Camel Design Patterns https://leanpub.com/camel-design-patterns
> >> Instant Apache Camel Message Routing
> http://www.amazon.com/dp/1783283475
> >>
>
>
>
> --
> Bilgin Ibryam
> Camel Committer at ASF & Integration Architect at Red Hat
> Blog: http://ofbizian.com | Twitter: @bibryam
>
> Camel Design Patterns https://leanpub.com/camel-design-patterns
> Instant Apache Camel Message Routing http://www.amazon.com/dp/1783283475
>



-- 
Charles Moulliard
Apache Committer & PMC / Architect @RedHat
Twitter : @cmoulliard | Blog :  http://cmoulliard.github.io

Reply via email to