• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: JasperReports progress
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: JasperReports progress


  • Subject: Re: JasperReports progress
  • From: Kieran Kelleher <email@hidden>
  • Date: Wed, 04 Apr 2012 12:03:58 -0400

FWIW, if iReport can see the fonts and render them, then Jasper should be able to on the same system. Not sure why it is not working for you. I have not seen this issue.

As a workaround, try putting the fonts in a jasper jar per the README and include in your apps classpath.


On Apr 4, 2012, at 11:39 AM, Theodore Petrosky wrote:

I understand the issue that the fonts have to be available to the server running the D2W app. if I deploy this on a different box, then I will have to move the fonts there.

I am on the development box. the fonts in question are loaded in /Library/Fonts. The display beautifully in iReport but not in the compiled  .jasper    report.

Originally when I googled on the error message I found posts saying that the fonts needed to be exported into a .jar and be in the java classpath. Then I found posts saying that truetype fonts should just work.

I don't have an answer yet. I hope it isn't that truetype works if you use an up to date version of iReport. We are really locked into using 3.7.4

We'll see where it goes.

Ted


--- On Wed, 4/4/12, Paul Yu <email@hidden> wrote:

From: Paul Yu <email@hidden>
Subject: Re: JasperReports progress
To: "Theodore Petrosky" <email@hidden>
Cc: "Kieran Kelleher" <email@hidden>, email@hidden
Date: Wednesday, April 4, 2012, 10:28 AM

I think those fonts are what installed on the machine that is running the report.  When I deployed my reports to my linux server, the reports broke because of a lack of fonts.

-- 
Paul Yu
Sent with Sparrow

On Wednesday, April 4, 2012 at 10:24 AM, Theodore Petrosky wrote:

I found the jasper version (3.7.4) and downloaded the correct iReport version and voila. I get no errors and it creates the PDF. The only issue is that the report is not using the fonts I selected.

Is there something I must do to tell JR to use the fonts I selected?

Ted

--- On Wed, 4/4/12, Kieran Kelleher <email@hidden> wrote:

From: Kieran Kelleher <email@hidden>
Subject: Re: JasperReports progress
To: "Theodore Petrosky" <email@hidden>
Cc: email@hidden
Date: Wednesday, April 4, 2012, 6:56 AM
Seems to me like D2W integration of
long response pages is your issue here and the d2wcontext is
getting lost. CCAjaxLongResponsePage knows nothing about D2W
for a start, neither the nextpage controllers being used
there. The jasper task is a background Callable task that
returns a File result. The Jasper example project is not a
D2W project. So, at this stage I have to defer to the D2W
experts on the list for advice on integrating a background
task with a File (to be downloaded result) into a D2W
scenario.


The iReport MUST match the JasperReports version in this
project. You have been warned.
Look in Libraries directory of this project for the jar
named something like jasperreports-X.X.X.jar.
That file has the current version number.

Currently Wonder version is at 3.7.4. It will probably stay
that way for a while. Jasper has many other dependencies and
those dependencies are used across other Wonder projects
.... iText for example. So it is not just a case of drop the
latest jasper and all its dependencies into Libraries.


On Apr 3, 2012, at 10:48 PM, Theodore Petrosky wrote:

here's what we have.

in a stock D2W app there is a method in pageWrapper:

public String bodyClass() {
    String result = null;
    String pageConfig =
(String)d2wContext().valueForKey("pageConfiguration");
    if (pageConfig != null &&
pageConfig.length() > 0) {
        result =
pageConfig + "Body";
    }
    return result;
}

Obviously it is setting the css class for the context.
When I return from making the jasper report pdf, the
d2wcontect is null and there is the NPE.

as a work around, I added to the method that checks the
context:

if (d2wContext() != null) {
       
NSLog.out.appendln("*** pageWrapper 
pageConfiguration  is not  null =  ***** ");


    pageConfig =
(String)d2wContext().valueForKey("pageConfiguration");
}

I get a very ugly page. now I can figure out why the
compiled jasper report is not using any of the fonts that I
am specifying.

Are there any gotchas with the different versions of
iReport and the version of Jasper Reports in wonder?

Ted

--- On Tue, 4/3/12, Kieran Kelleher <email@hidden>
wrote:

From: Kieran Kelleher <email@hidden>
Subject: Re: JasperReports progress
To: "Theodore Petrosky" <email@hidden>
Cc: email@hidden
Date: Tuesday, April 3, 2012, 6:34 PM
The NPE is at:

at
com.as.application.ui.components.PageWrapper.bodyClass(PageWrapper.java:27)

that is your component ..... so why don't you look
there to
see what is causing the NPE?

On Apr 3, 2012, at 4:00 PM, Theodore Petrosky
wrote:

So I've made progress but am stumped. I created
a
customcomponent and used a rule to make one of the
displayPropertyKeys a hyperlink.

I am basically using the JasperReportExample. I
created
a hyperlink as one of the property keys. this will
fire off
the method that starts the jasper reports process:

public WOActionResults printBrief()
{   
     
         
         Brief
theBrief =
(Brief)object();
         
       
Callable<File> reportTask =
Reports.createBriefReportTask(theBrief);
         
       
CCAjaxLongResponsePage nextPage =
pageWithName(CCAjaxLongResponsePage.class);
         
         // Push
the task
into the long response page
       
nextPage.setTask(reportTask);
         
         //
Controller for
handling the Callable result in the long response
page
       
FileTaskDownloadController nextPageController =
new
FileTaskDownloadController();
         
         //
Hyperlink text
on the "Your file is downloaded page" to get back
here
       
nextPageController.setReturnLinkText("Reports
Menu");
         
         // The
filename
for the download
       
nextPageController.setDownloadFileNameForClient("BriefReport.pdf");
         
       
nextPage.setNextPageForResultController(nextPageController);
         
       
NSLog.out.appendln("*** nextPage =  ***** " +
nextPage);

         
         return
nextPage;
     }

Here is the Reports method:

     public static
Callable<File>
createBriefReportTask(Brief b) {
       
         
         String
reportDescription = "Printed Brief";
         
       
HashMap<String, Object> parameters = new
HashMap<String, Object>();
       
parameters.put("reportDescription",
reportDescription);
       
parameters.put("userName", "User From session");
     
     
   EOQualifier
qualifier = ERXQ.equals(Brief.JOB_NUMBER_KEY,
b.jobNumber());

       
ERXFetchSpecification<Brief> fs = new
ERXFetchSpecification<Brief>(Brief.ENTITY_NAME,
qualifier, null);

       
ERJRFetchSpecificationReportTask reportTask = new
ERJRFetchSpecificationReportTask(fs,
jasperCompiledReportFileName, parameters);
         
         return
reportTask;

     }

indeed it goes out and starts to create the
pdf. I see
the the pdf in
/var/folders/2d/23408oihsdvh08r23/T/Brief3234987239872398472.pdf

However, just when DownloadIsComplete's
appendToResponse method is called I get errors:


Apr 03 15:33:34 ASBriefsD2W[57285] WARN
NSLog  -
<com.webobjects.appserver._private.WOComponentRequestHandler>:
Exception occurred while handling request:
java.lang.NullPointerException
[2012-4-3 15:33:34 EDT] <WorkerThread0>
java.lang.NullPointerException
     at
com.as.application.ui.components.PageWrapper.bodyClass(PageWrapper.java:27)
     at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
     at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at
java.lang.reflect.Method.invoke(Method.java:597)
     at
com.webobjects.foundation.NSKeyValueCoding$ValueAccessor$1.methodValue(NSKeyValueCoding.java:636)
     at
com.webobjects.foundation.NSKeyValueCoding$_MethodBinding.valueInObject(NSKeyValueCoding.java:1134)
     at
com.webobjects.foundation.NSKeyValueCoding$DefaultImplementation.valueForKey(NSKeyValueCoding.java:1324)
     at
com.webobjects.appserver.WOComponent.valueForKey(WOComponent.java:1736)
     at
com.webobjects.foundation.NSKeyValueCoding$Utility.valueForKey(NSKeyValueCoding.java:447)
     at
com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementation.valueForKeyPath(NSKeyValueCodingAdditions.java:212)
     at
com.webobjects.appserver.WOComponent.valueForKeyPath(WOComponent.java:1804)
     at
com.webobjects.appserver._private.WOKeyValueAssociation.valueInComponent(WOKeyValueAssociation.java:50)
 


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: JasperReports progress
      • From: Theodore Petrosky <email@hidden>
References: 
 >Re: JasperReports progress (From: Theodore Petrosky <email@hidden>)

  • Prev by Date: Re: JasperReports progress
  • Next by Date: Re: JasperReports progress
  • Previous by thread: Re: JasperReports progress
  • Next by thread: Re: JasperReports progress
  • Index(es):
    • Date
    • Thread