Re: spending too much time in PropertyList.findProperty
On Thu, 2004-04-15 at 15:53, Steven McNeel wrote: Thanks for the response. The answers to your questions are: i) Yes, I'm using the HEAD. ii) I'm using JProbe on Solaris 8.5 for profiling. I had inaccurate results with JMP and got no sympathy from the author of JMP when I mentioned it. Check the archives for 'Measure accurately'. http://nagoya.apache.org/eyebrowse/[EMAIL PROTECTED]msgId=1167985 iii) Here's the breakdown (percentages are cumulative time spent in method): (1) org.apache.batik.util.SoftReferenceCache$1.run - 49.4% - this one's interesting, and seems to explain why my app runs more slowly on UNIX than on Windows! Windows doesn't care if batik.jar is in the classpath; UNIX does. I'm not using any SVG in my stylesheet. Any ideas why it looks for it on UNIX, and how to get around it? Are you using the same version of the JVM on Windows and Solaris ? Are you using java -client or java -server on Solaris ? The default is -client and there is no -server JVM on Windows. (2) org.apache.fop.fo.PropertyList.findProperty - 26.4% That doesn't seem like that much. How much faster would Fop be if you cut that in half ? (13.2% would be nice but won't speed things up by an order of magnitude). OTOH I always get suspicous when the high-runner is in a library associated with implementation of some rare language 'feature'*. SoftReferenceCache$1 could bear investigation. * I was a PL/I programmer many years ago. - this is the other main culprit. The time spent here is divided fairly evenly among the following three methods of PropertyListBuilder: computeProperty - 8.8% isCorrespondingForced - 5.7% getShorthand - 5.8% John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: spending too much time in PropertyList.findProperty
Before we embark on another performance-of-properties thread, a couple of questions: i) Which version of Fop is involved ? I'd guess you are using HEAD, but this needs to be clear. ii) Which profiler are you using ? I ask because I got burned with measurements using a profiler that does not handle recursion properly. iii) What are the percentages ? Which methods are high-runners ? On Wed, 2004-04-14 at 17:29, Steven McNeel wrote: Hello, I'm generating a complex PDF from a big FO document, with lots of fo:block elements. It takes about 10 seconds to render a 16 page PDF. When I profiled my code, I see that most of that time is spent called Block.layout which gets called about 4,000 times. Most of its time is spent calling PropertyList.get (for a total of nearly 400,000 times!). The PropertyList.get method calls an overloaded version of itself, which in turn calls PropertyList.findProperty a whopping 1,500,000 times. My question is: as an FO stylesheet writer, is there any way I can arrange my use of fo:block elements, or the attributes therein, to decrease the number of lookups on the PropertyList object? Or, is there anything tricky I can do, perhaps in the FOP code itself, to default some integers into the different properties so that FOP doesn't even have to look them up? (If anyone is interested in seeing what is probably an overly-complex FO stylesheet, and is interested in pointing out my rookie mistakes, that would be fantastic, but otherwise, some advice on my questions above would be great.) Thanks! -Steve McNeel _ Watch LIVE baseball games on your computer with MLB.TV, included with MSN Premium! http://join.msn.com/?page=features/mlbpgmarket=en-us/go/onm00200439ave/direct/01/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Landscape?
On Tue, 2004-04-06 at 17:19, Nicholson, Robb wrote: Use the page width and height attributes, for example... And of course, you'll have to tell the Windows print dialog that you wish to print LAndscape mode. (YMMV) -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: urgent help needed using FOP
); } } public void renderFO(InputSource foFile, HttpServletResponse response) throws ServletException { try { ByteArrayOutputStream out = new ByteArrayOutputStream(); response.setContentType(application/pdf); Driver driver = new Driver(foFile, out); driver.setLogger(log); driver.setRenderer(Driver.RENDER_PDF); driver.run(); byte[] content = out.toByteArray(); response.setContentLength(content.length); response.getOutputStream().write(content); response.getOutputStream().flush(); } catch (Exception ex) { throw new ServletException(ex); } } ... } This is the exact error I got: org.xml.sax.SAXParseException: Content is not allowed in prolog. at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1172) at org.apache.fop.apps.Driver.render(Driver.java:498) at org.apache.fop.apps.Driver.run(Driver.java:565) __ Do you Yahoo!? Yahoo! Small Business $15K Web Design Giveaway http://promotions.yahoo.com/design_giveaway/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: FO templates
On Tue, 2004-03-30 at 14:11, Richard Evans wrote: I want to implement an application which can use XSL-FO templates which are converted to PDFs with the help of some external code. The templates will contain application elements which the helper code will map to XSL-FO at conversion time. Something like: fo:root xmlns:fo=http://www.w3.org/1999/XSL/Format xmlns:svg=http://www.w3.org/2000/svg; ... fo:blockThis is text special:item name=value2/ and this is too/fo:block Here the tags in the 'special' namespace are processed by the helper code. The template will be used repeatedly so I'd like to parse it just once. Have you looked at Cocoon ? http://xml.apache.org/cocoon/ I can't see any clean way of doing this. You'd produce your input file in an XML format, pass it through any required XSLT transformations and feed the result to the FOP serializer. Richard - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Print and queues.
On Tue, 2004-03-16 at 11:11, [EMAIL PROTECTED] wrote: Gentle people, I am using Fop to generate my pdfs but my question is far from the direct concerns of this list(forgive me!). Does anyone know a good soft for managing printer queues?I mean a soft able to create and manage virtual queues(the printers could be HP likely).?? Thanks a Loot for any help! It depends upon your platform. Are you using Windows (which version) or Unix/Linux (and which version) ? -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Print and queues.
On Tue, 2004-03-16 at 11:33, [EMAIL PROTECTED] wrote: Windows 2000. You could try a web search for a windows print queue manager. I did and found www.printqueueplus.com and www.printqueuemanager.com. I suggest you try the web search route as your question is a bit off topic for this list. -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: using multiple page sequences
On Thu, 2004-03-11 at 22:02, Fleetwood, Brett (SSABSA) wrote: Hi all, Quick question: Have you increased the memory available to your JVM ? If you are using the JVM default, your easiest solution might be to increase the memory available. This depends on your system having enough real memory to support it and varies by JVM vendor. So what is your environment ? OS, real memory available, Java Version ? What is your command line used to invoke Fop ? I am having out of memory issues when transforming my FO - PDF using fop-0.20.5rc2. I read that using multiple page sequences in the XSL and There is a production release of 0.20.5 therefore in the FO means that fop will release some memory. I don't see how I can do this. My XML file is generated dynamically from a database so I don't know how big it will be. Is there any solutions I can use that uses multiple page sequences or possible change the xml structure, if not is there another FOP transformer that isn't as memory intensive. Thanks in advanced for any help. If I havn't provided enough info please ask and I can get back to you. See above -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: using multiple page sequences
On Thu, 2004-03-11 at 23:32, Fleetwood, Brett (SSABSA) wrote: Thanks for you response John, hopefully I can answer your questions. From what I understand, we have a web-based application that uses Linux Apache-Tomcat as the web-server to do the rendering. This is a decent machine and we have allocated extra memory (approx 1Gb) but being a web-app possibly many users can request data to be rendered into PDF at the same time therefore I need to keep things as small as possible. I'm not sure throwing more resources at it will ultimately fix it, I think that the actual XSL needs to change or possibly use a different rendorer. Has anyone had experience in setting up a machine to solely perform transformations? I asked about memory on the machine and about the command line arguments used to invoke your environment as a sanity-check to make sure that your Java VM (in this case Tomcat ?) is configured with a large enough heap to support your program. It could explain why your application runs out of heap. There are reasons WHY it requires this much memory, that we don't want to go in to here. Simply plugging in a few memory cards isn't enough. Java has to know the size of the heap (free store) that it is allowed to create. For the Sun Java, use the commands: java -j and java -X to see the options. In Tomcat 5, you could use the environment variable JAVA_OPTS to pass in a value for -Xmx, say JAVA_OPTS=-Xmx800M to allow an 800 Mb heap. This isn't a perfect solution, but it could help you get to the next level and keep you alive while you consider your commercial options. -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Huge time in creating Driver object...
On Tue, 2004-03-09 at 08:14, Avula, Srini wrote: Hi While creating org.apache.fop.apps.Driver object, to set logger and renderer, is taking very long-time compare to transformation and other activities. Could you be a bit more specific ? We would expect some extra time spent in 'warm-up' for a number of activities. Some of this is a related to the Java VM and some is an unfortunate consequence of the 0.20.5 implementation and may not be improved for a while. It could be helpful if you show some measured times and outline your expectations. Also, include the complete set of command-line parameters (do you use -Xmx??? or others). -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Yet another pagination issue
On Tue, 2004-02-24 at 09:46, Matthew Case wrote: Well, the issue is that these letters go all over the country...so one letter may need text specific for Utah while the next 5 may go to Maine. Obviously we could configure the software to print only letters going to specific states at a time, but management would rather the program spit out the appropriate text on a per-letter basis. I don't know what your volume is, but here in Canada there are discounts on postage for pre-sorted bulk mail. This stuff has to be produced in what amounts to postal-code order. In the US, I would assume the same sort of arrangement would require sequencing by ZIP code. There are three or four cents off each piece of lettermail. If you are doing thousands of pieces on a regular basis, the savings will be enough to get their approval. -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Table break-after/ break-before page add extra blank pages
On Thu, 2004-02-19 at 17:45, J.Pietschmann wrote: Chanaka Amarasekara wrote: I'm using the Apache FOP to create a PDF file. I'm having a problem in my XSL file, where when I add a break-after = page for a table it adds an extra blank page to the end and if I have a break-before = page it will add an extra blank page to the beginning. Yes, both are bugs. Getting rid of the blank page at the beginning would require fixing the is-first-in-area code. Getting rid of the trailing blank page is more difficult, And all this time I thought it was MY fault! -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: migrating from a standalone application to a web application
On Thu, 2004-02-19 at 12:30, Teator, Michael wrote: When I run the application on my Windows 2000 computer, the JVM uses a lot of CPU while rendering (almost 100 %). Il wonder if this would be improved if I use the server option of Sun's JVM. The last time I explored this issue, there was an improvement. Might have been better than 10 percent. I use : - FOP 0.20.5 - Tomcat 4.1.18 - Sun's JVM 1.4.0_03 on windows 2000 Thanks for your advices, Mathieu -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: How Generate .fo file from PDF?
On Wed, 2004-02-04 at 18:26, Robert Paris wrote: http://nagoya.apache.org/eyebrowse/BrowseList?listId=64by=threadfrom=486484 The conclusion seems to be 'don't even think about it'. Of course - it didn't dawn on me that PDF's have everything absolutely positioned - basically as though it were an image (of course with vector graphics). Yikes. There are a lot of PDF resources out there. Planet PDF comes to mind. http://www.planetpdf.com/ It sounds like you are going to live in the Adobe Acrobat world for a while. If your users are stuck in the Microsoft world, you won't be able to save them from themselves. There are alternatives to going from PDF to XSL-FO (which is what you asked). I find this a bit amusing in a Dilbertian sense. Our astronauts know how to drive to the office in a minivan. So we will be sending them to land on Mars in a spaceship shaped like a minivan. They can pull in to MacDonalds or Chili's to eat. So we'd better start developing an interplanetary fast-food drive-through restaurant. Will a Motel 6 fit in the Shuttle's cargo bay ? -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: How Generate .fo file from PDF?
On Thu, 2004-02-05 at 12:33, Robert Paris wrote: Do you know the name of that tool? http://s.teoma.com/search?q=pdf2svgqcat=1qsrc=0Search.x=0Search.y=0Search=submit John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: How Generate .fo file from PDF?
On Tue, 2004-02-03 at 20:52, Robert Paris wrote: Can I generate a .fo file from a pdf file? Essentially going backwards? Probably not in any realistically useful way. People on this list can point you to software that can read the text in a PDF. From that point you could start to construct XML files, but this is probably not something you want to undertake lightly. [Would it be unkind for me to say: Yes, but you have to type it in first. ?] John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: How Generate .fo file from PDF?
On Wed, 2004-02-04 at 13:21, Robert Paris wrote: Probably not in any realistically useful way. People on this list can point you to software that can read the text in a PDF. From that point you could start to construct XML files, but this is probably not something you want to undertake lightly. Thanks, I would like to hear about those other options from people. I thought somebody would. There are libraries that help you read from PDF. As an example, Google search results for PDF files usually have an option to view the file as a PDF. That conversion is half the battle. You can convert the HTML to XHTML (if necessary) and that is easily transformed to XSL-FO according to another thread of this week. Of course, your document won't be in a helpfully structured XML form. Can you also tell me why you think it's unlikely to be useful? Why is it so hard to go back to fo or XML from PDF if the PDF structure fits so well with fo/xml? There was a thread about this last year: http://nagoya.apache.org/eyebrowse/BrowseList?listId=64by=threadfrom=486484 The conclusion seems to be 'don't even think about it'. Of course, you may have no choice. -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: request for java code snippet to XML- XSL-FO - PDF
http://xml.apache.org/fop/embedding.html#render-with-xslt On Wed, 2004-02-04 at 15:57, [EMAIL PROTECTED] wrote: hi all, on the command line I am doing a java org.apache.fop.apps.Fop -xsl billing_reports.xsl -xml billing_reports.xml -pdf billing_reports.pdf to transform xml to pdf. can someone send a java code snippet on how to do this from within a java app -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: fo to pdf conversion error
How are you doing the FOP step ? Are you aware that the Command line for Fop can format the XSL-FO file ? It can also execute the XSLT transformation producing a SAX event stream that will be processed by Fop. It depends on whether you run: java org.apache.fop.apps.Fop -fo file.fo or java org.apache.fop.apps.Fop -xsl x.xsl -xml x.xml All is described on: http://xml.apache.org/fop/running.html -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: FOPException: FOP processor fails during load test
); transformer.transform(xml, res); out.flush(); out.close(); Logger.trace(Logger.SERVLET_LOGGING,ControllerServlet().outputXML2PdfFile() -- Forwarding to pdf file :+File.separator + pdfDir.getContextName() + File.separator + pdfName); RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(File.separator + pdfDir.getContextName() + File.separator + pdfName); dispatcher.forward(request, response); //response.sendRedirect (File.separator + pdfDir.getContextName() + File.separator + pdfName); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Change-bar with FOP
On Wed, 2004-01-14 at 16:53, Forest, Sebastien wrote: Thank you all for your help, I really appreciate. For now, I think that the only way to do this is with border-left or border-right for block or table-cell but this solution is not flexible enough to do what I need. And then I thought 'what would Jimmy BuffetNorman Walsh do' ? So I entered the search terms: 'docbook change bars' in to Teoma and found several statements by Norman Walsh: 1) + / Norman Walsh [EMAIL PROTECTED] was heard to say: | | I want to generate change bars on printed output. Can I use | | XSL style sheets to render into PostScript? | | Ah, changebars.xsl is an HTML stylesheet. I haven't written a print one | yet. Off the top of my head, I can't think of a way to make Jade or | XSL FO produce traditional print change bars. Simple brain cramp on my part. Doing it in FO is pretty easy, at least for blocks, one can just use, for example: fo:block border-end-color=black border-end-style=solid border-end-width=0.5pt padding-end=3pt That's not going to do the right thing for inlines, but maybe something could be worked out. Color could be used, of course, but it would be nice to have a bw solution too. Be seeing you, norm 2) + 7. Is there any way to generate change bars from a DocBook document? Norm Walsh. Yes, it can be done either by hand or semi-automatically. You can use the revisionflag attribute to track changes. If you have two versions of the document, you can use diffmk to automatically add the revisionflags. Then process the document with changebars.xsl and you'll get something like change bars, see http://www.w3.org/TR/2000/REC-xml-20001006-review.html. P.S. I have a java version of diffmk that is in some ways better than the perl version. I'm working on getting it released. -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Need help: Error while loading a GIF from a URL.
On Wed, 2004-01-14 at 18:45, J.Pietschmann wrote: Manjush G. Menon wrote: Iam running the FOP for PDF generateion on an AIX server, which threw the following error while attempting to load an image (GIF) from a URL. java.lang.ClassCastException - sun.net.www.http.KeepAliveStream It will work with the http://localhost:port/Web/wam/etc/Ue.gif I suppose..(will it?) Is it anything related to FOP build? I don't think so. It rather looks like you have problems with the JRE or a mixup of various JRE versions. Looks network-related. Is it repeatable ? -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: FOP being very slow.
On Mon, 2004-01-12 at 19:56, Roland Neilands wrote: Well we are running this application on UNIX machines. From where did you get hint that its running on windows.. Then we can use the java -server optimizing JVM. But where exactly to use it. fop.sh, last line, just add -server after java I forgot that he is running in websphere. Anyone know which servlet container is used by websphere ? Does it use the SUN or IBM SDK ? [Sent him a program offline ... and explained that I saw a DOS (I mean WINDOWS) file name in his Code.] -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: FOP being very slow.
On Mon, 2004-01-12 at 20:36, John Austin wrote: In summary, I sent him my sample program and then reworked some of that program to eliminate communication through files. The sample program reads an external XML file generated from an Access DataBase. Transformation 1 generates a DOMResult which contains up to about 400 records from the DB. They only add about 1k each to the memory requirements. Transformation 2 reads a new DOMSource( theDOMResult.getNode() ); and generates a SAXResult() that uses the FOP Driver to write a PDF file. This demonstrates enough performance improvements to cut down his execution time significantly. I also pointed out that LOGGING is a performance hog. This is mentioned on the Cocoon list from time to time. In one case I got a 20% improvement for an 80 page PDF. When he absorbs this, (and if he comes back) I might point him towards some material on servlets and re-using his compiled XSLT stylesheets. -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: FOP being very slow.
On Tue, 2004-01-13 at 17:49, Jeremias Maerki wrote: Talking about performance: It might be a good idea to buffer to OutputStream. driver.setOutputStream(new BufferedOutputStream(new java.io.FileOutputStream( pdfFile ))); On 12.01.2004 21:51:09 John Austin wrote: driver.setOutputStream( new java.io.FileOutputStream( pdfFile ) ); Well spotted! It also needs: java.io.PrintWriter pw = new java.io.PrintWriter( new java.io.BufferedWriter( new java.io.FileWriter( inputFile ) ) ); and similar treatment for the StreamSources used to read in the XML and XSLT files. There might be some improvement there, but it is down near the noise. -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: configuration problem: hyphenation
On Tue, 2004-01-13 at 19:14, J.Pietschmann wrote: Kyle Kotwica wrote: Using either form of the URL suggested. The comment meant: 1. file:///\fop\fop-0.20.5\conf While it is a syntatcically valid URL, it probably wont work as expected, i.e. it does not address the file system object \fop\fop-0.20.5\conf 2. file:///\fop\fop-0.20.5\conf This will address the file system object \fop\fop-0.20.5\conf, but it's still no use because 3. The config setting is not an URL, but realy a directory name (path name). I thought that Java correctly translates forward slash to the System property file-separator setting, in the appropriate places. -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: FOP being very slow.
On Mon, 2004-01-12 at 10:31, Jignesh-NX01880 Kapadia wrote: Hi , We are having here. We are using FOP here for our application it generates a 81 page PDF in the output. It takes a very long time to generate it almost more than 1 minute. The user acceptance criteria is 15-20 seconds for such big PDF. if say more than 20 user try to generate the PDF file then we reach peak with our JVM and after that no user can do anything. We are using following FOP driver class. org.w3c.dom.svg.SVGDocument. The websphere instance on which the application is running has 512MB of JVM size. We need that application can sustain a load of 60 user at a time to generate PDF document. The server has RAM of 3GB. The application is built with struts. Is there any way that FOP is can be made less memory intensive? so that it will not use much JVM but use CPU rather? This is a long-running issue with FOP and there is no immediate relief. I believe that performance will improve when the 1.0 version is released but there is no predictable release date at this time. Here are a couple of ideas but your mileage may vary: 1) Use the best version of FOP that works for your app. 0.20.5 is the highest stable release of FOP 2) Use the best version of the JVM that works for your app. 1.4.2_? from Sun appears to be pretty good. Some older postings indicate that Sun's 1.3 is faster than 1.2 and you should measure and compare 1.3 to 1.4 IBM also have their own versions (you are running websphere). 3) If using Sun and not using Windows, compare the java -client and java -server version of the JVM. In some cases, 'java -server' may perform slightly better than 'java -client' (10-20 percent?). 4) If you have time to nit-pick, you can profile the memory use of your app and select values for -Xmx and -Xms that reduce heap expansion and garbage collection. As you say your JVM is limited to 512Mb, I would adjust this upwards. 5) Can you distribute processing across a pool of servers ? Hardware is cheap and you can buy a lot of power for the price of a commercial XSL-FO processing solution. 6) Search the list archives for more info on performance. I like the Apache version of the archive even though search results are displayed in random order. http://nagoya.apache.org/eyebrowse/[EMAIL PROTECTED] 7) Do your times include XSLT transformations ? Perhaps these can be improved. Compare times required to do separate command-line XSLT transformations and FOP formatting with time taken to do integrated processing. If the XSLT times are large w.r.t. FOP you may be able to find improvements for the XSLT portion. -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Re[2]: FOP being very slow.
On Mon, 2004-01-12 at 12:09, Jignesh-NX01880 Kapadia wrote: Hi Chris John , Thanks a lot for your responses. I' m answering your questions and the info you have asked as below. For Chris This application was developed by third party for us and delivered to us. Now since it is very slow we need to modify it to make it less memory intensive. The approach they have used is as follows. 1) The data retrieved from database is converted in to XML. 2) That XML file with the help of -it is converted in PDF. 3) The FOP version used is 0.20.4rc Of more interest, which JVM and what version are you using ? Does it employ 'java -server' version of the JVM ? For John, we do have load balancing of application servers. Both the servers have single CPU and JVM size on each can be extended to 1GB at max. We have XSLT transformations also as I mentioned above in Chris's response. Do you guys think 0.20.5 will have a better performance time then 0.20.4rc. It's worth measuring in your environment. I am attaching a sample code from one of the main method which generates PDF file from our PDF Servlet. and please do suggest any alternative if you think it can be done in better way to improve processing speed. and then it is written to output as follows: Following 'generate' is part of the package written for you ? I don't recognize it off the top of my head. byte[] content = generate(contextRoot, contextRootURL, generateParams, templateType, templateName, targetLanguage, xmlPriceBook, cover, pdfCharts, false); //session.setAttribute(LAST_PDF, content); File outFile = new File(baseDirectory + cache/ + userProfile.getUserId() + .pdf); FileOutputStream fos = new FileOutputStream(outFile); fos.write(content); fos.close(); response.sendRedirect(baseHTTP_URL + cache/ + userProfile.getUserId() + .pdf); So you build the file, write to disk and then redirect the user to that file. Useful only if the user access the result more than once AND there isn't any caching on your server or the browser. Thanks and your help will be really appreciated, Jignesh I would look again at the FOP Servlet examples and also look at the XSLT transformations to make sure they are not poor performers. Reply Separator Subject:Re: FOP being very slow. Author: [EMAIL PROTECTED] Date: 1/12/2004 9:18 AM Jignesh-NX01880 Kapadia wrote: Hi , We are having here. We are using FOP here for our application it generates a 81 page PDF in the output. It takes a very long time to generate it almost more than 1 minute. What sort of system are you running? how many CPUs, what o/s, (you mentioned memory below), and what version of FOP? The figures you quote sound reasonsable for a basic single CPU system. I dont think you can do a lot to speed up processing time for a single document. Actually I found FOP to be one of the faster XSL-FO formatters around (mainly due to the fact that keeps and other difficult features are missing) The user acceptance criteria is 15-20 seconds for such big PDF. if say more than 20 user try to generate the PDF file then we reach peak with our JVM and after that no user can do anything. We are using following FOP driver class. org.w3c.dom.svg.SVGDocument. I dont quite follow this bit. Are you saying you are creating SVG and XSL-FO in a DOM before presenting it to FOP for processing. This seems somewhat inefficient. The websphere instance on which the application is running has 512MB of JVM size. We need that application can sustain a load of 60 user at a time to generate PDF document. The server has RAM of 3GB. The application is built with struts. Is there any way that FOP is can be made less memory intensive? so that it will not use much JVM but use CPU rather? There have been some changes made to improve the memory consumption of tables, but these changes have not been included in any release of FOP. You will have to download the source from CVS maintenance branch and compile it yourself. Chris - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] __ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: FOP being very slow.
. Reply Separator Subject:Re: FOP being very slow. Author: [EMAIL PROTECTED] Date: 1/12/2004 9:18 AM Jignesh-NX01880 Kapadia wrote: Hi , We are having here. We are using FOP here for our application it generates a 81 page PDF in the output. It takes a very long time to generate it almost more than 1 minute. What sort of system are you running? how many CPUs, what o/s, (you mentioned memory below), and what version of FOP? The figures you quote sound reasonsable for a basic single CPU system. I dont think you can do a lot to speed up processing time for a single document. Actually I found FOP to be one of the faster XSL-FO formatters around (mainly due to the fact that keeps and other difficult features are missing) The user acceptance criteria is 15-20 seconds for such big PDF. if say more than 20 user try to generate the PDF file then we reach peak with our JVM and after that no user can do anything. We are using following FOP driver class. org.w3c.dom.svg.SVGDocument. I dont quite follow this bit. Are you saying you are creating SVG and XSL-FO in a DOM before presenting it to FOP for processing. This seems somewhat inefficient. The websphere instance on which the application is running has 512MB of JVM size. We need that application can sustain a load of 60 user at a time to generate PDF document. The server has RAM of 3GB. The application is built with struts. Is there any way that FOP is can be made less memory intensive? so that it will not use much JVM but use CPU rather? There have been some changes made to improve the memory consumption of tables, but these changes have not been included in any release of FOP. You will have to download the source from CVS maintenance branch and compile it yourself. Chris __ -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: pdf and ie problem
I have some problems with your question. I believe that you are not a native english speaker and that this might make it difficult for us to help you. If you possibly can, have a co-worker who speaks english well review your question befor eyou post it. It appears that your question is at least partly about writing servlets and there may be better forums for questions about setting HTTP headers from a servlet. Can we break your problem down a bit ? Can you generate your PDF with the command-line Fop ? What is different when you generate the same output with a servlet ? Do you have a program (like http://www.ethereal.com/) or one of the Java programs like in the Core Servlets or More Servlets books ? That will let you trace the http protocol ? Is your program short enough to post the source ? On Tue, 2004-01-06 at 21:56, wrote: hi, after reading FAQ (http://xml.apache.org/fop/servlets.html#ie), i use servlet to print pdf, with function to set Header as follow: response.setHeader(Expires, new Long(System.currentTimeMillis()).toString()). however, it seems no use. is that wrong? because i do not use url to reference to the pdf generated (like the first tip in faq; via reference to the url with dummy end parameter like http://XXX...?aaa=...a=.pdf), so the first tips seemly can't be applied to it (i know it gets to work for i tested it before, but now, for some private reason, we gotta to change the way to write the data to pdf). or any methods can be used if i print the stream ByteArrayOutputStream ba = new ByteArrayOutputStream(); ...//write to ba ServletOutputStream out = response.getOutputStream(); ba.writeTo(out); ...//do flush, close function i appreciate any suggestions, thank you very much. the env includes j2sdk1.4.1_01, jboss2.4.4-tomcat4.1.12, ie version 5 and 6 (both can't get to work), acrobat 5.x. - Yahoo! http://tw.promo.yahoo.com/mail_premium/stationery.html - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Minimising FOP Runtimes
On Wed, 2003-12-10 at 18:42, J.Pietschmann wrote: Manuel Reyes wrote: I have been working on creating a three tier system that per client requests gets data from a database, pumps this into a PDF via FOP XSL/XML processing, then sends the resulting PDF back to the client for display. This project is reaching its end and creating a 3 or 4 page document usually takes 4 or 5 seconds (this is just the FOP processing aspect). Now this is acceptable but there is no harm in hunting down speed improvements. Having read through (and implemented any relevant suggestions) the FOP documentation regarding speed, I thought it would also be a good idea to speak to the people that use this application on a daily basis, as experience is invaluable when it comes to this type of thing. A time of 4 to 5 seconds for a 3..4 page document is very slow for modern machines. - Check for warm-up times. It may pay off to reuse the driver object. - Check JVM memory settings. - If the time includes XSLT, check without it. There are people out there capable of writing *horribly* inefficient XSLT. - Invest in a profiler. I definitely agree with that. Generate the '.fo' separately, say with command-line Xalan and then generate your PDF with command-line Fop. This may take more resources than a 'pipeline' approach like Cocoon but will tell you which step is more expensive. You will need to do this anyway if you wish to run a profiler. Has anyone tried CatchXSL at www.xslprofiler.org ? It seems to work and has a nice UI but I didn't grok it in the few minutes I played with it. (I suppose one could intentionally write some bad XSL to demonstrate the use of this tool.) Check your 'java' command. There are two versions of the JVM available(on professional OS's anyway) which are selectable as 'java -server' and 'java -client' respectively. I found a benefit of about 10% from the -server version. J.Pietschmann - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Square bullets in pdf
Who was that masked man ? I don't know but he left me this square bullet. -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: FOP.NET
On Tue, 2003-12-02 at 06:40, Gunnar Liljas wrote: Would a .NET port be worthwhile? Very much so. Is there a reason the .NET app can't communicate with FOP over a network connection ? Why is a port needed ? They just might do that, and while they're at it, they'll probably launch an alternative to PDF... Not enough money in it relative to the anti-trust headache PS. Currently I'm using FOP from .NET using a Web Service wrapper, which works just fine, although there is some overhead in this solution. DS But it works and resource use will go down soon. -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: FOP.NET
On Mon, 2003-12-01 at 12:47, Gunnar Liljas wrote: We have all been wondering why .NET isn't implemented in Open Source components written in Java. You're ironic, I know, but .NET-usage of FOP would still be quite usable. To get it in C# one would have to rewrite the entire thing (although help is available in the form om Java Language Conversion Assistant in Visual Studio). A C# FOP would preferrably use the pull architecture of the XMLReader in .NET, instead of the SAX Parser. NFOP is in J#, and while it may be worth using in a .NET environment, J# is still a strange animal. There is no reason due to FOP (or Java) that you can't execute FOP from .NET. Any restrictions are due to implementation details of .NET. That makes it a question for the developers of .NET not the developers of FOP. -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Login problems in the bug database
On Mon, 2003-12-01 at 16:00, Simon Pepping wrote: On Thu, Nov 27, 2003 at 10:18:25PM -0330, John Austin wrote: On Thu, 2003-11-27 at 17:35, Simon Pepping wrote: Hi, It's a pain of a problem to solve, ... Ethereal ... Good graphical interface. A good tool indeed, which provides an interesting insight in network traffic. For debugging of login and cookie problems its information is a bit overwhelming. I should have also mentioned that there are some easier tools in Marty Hall's book: Core Servlets and JavaServer Pages. The EchoServer example should be useful for this type of problem. Hmmm... I wonder if the Prime Minister of Canada: Jean (Don't-the-door-hit-ya-on-the-ass) Chretien still sets a Cookie on the page that states that he doesn't use Cookies on his web site. 1) Load http://www.pm.gc.ca/ 2) start Ethereal and turn on 'capture' 3) click on 'Important Notices' 4) stop capture and look at the HTTP page headers -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Login problems in the bug database
On Thu, 2003-11-27 at 17:35, Simon Pepping wrote: Hi, When I am logged in in the bug database, I must continually renew my login. I use Mozilla Firebird 0.6 and Mozilla 1.4 on Linux. Cookies are enabled. I have a cookie from nagoya, called BUGLIST. When I use IE on Windows98 all goes well. What do I do wrong? Is there a more specific email address for questions about bugzilla? It's a pain of a problem to solve, but 'Ethereal' from 'ethereal.com' should be able to track the session down for you. It will show you all of the HTTP PDU's and timings. Good graphical interface. Regards, Simon -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Memory measurement -- importance of Driver.reset()
After reading the Sept 2003 thread about Memory Performance, leaks (and how wonderful ADA is), I modified my test program that generates 3 PDF files. The program now sleeps 30 seconds, calls Driver.reset(), nulls the reference and sleeps again. In JMP this plots a square wave between that you can read on the attached graphs. It is clear that there is a fair bit of memory freed by Driver.reset(). After thinking it over, I modified the same test to skip reset() and just null the reference and issue System.gc(). This should be the same as letting it go out of scope (which happens afterwards but this way I get the square wave on the graph). Guess what ? Attachment 2: footprint2.png has about 1Mb more heap in use! And this is a very short test file with just one member name address. The test prints a letter, envelope and a renewal form for a non-profit Gardening group. The difference ... no call to Driver.reset() !!! Why ? Does this suggest that there are finalizers (destructors) that are not being called ? References set to null inside reset() should all be unreachable when the reference to Driver goes out of scope. This might explain problems people are reporting when generating multiple PDF files using FOP. Especially if their programs don't lose references to instances of Driver. Personally, I suspect there are a lot of logical memory leaks inside FOP. A reset() at the end of using a Driver instance is a catch-all way of releasing all of the logically leaked memory allocated from inside Driver() (and therefore inside FOP). This approach is of little help to the developer who builds an application that dies of memory exhaustion in production. We will have to fix the logical leaks inside FOP to improve the user experience. -- John Austin [EMAIL PROTECTED] attachment: footprint2.pngattachment: footprint.pngimport java.io.File; import java.io.IOException; import javax.xml.transform.Result; import javax.xml.transform.Source; import javax.xml.transform.sax.SAXResult; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory ; import org.apache.avalon.framework.logger.ConsoleLogger; import org.apache.avalon.framework.logger.Logger; import org.apache.fop.apps.Driver; import org.apache.fop.apps.FOPException; /** * Use JAXP 1.1 to apply two transformations and FOP to generate PDF output * for the Friends of the Gardens (FOG) project for the MUN Botanical Garden * * Requires: * (i) Java = 1.4 to obtain the XML parser and XSLT processor - JAXP 1.1 * (ii) FOP = 0.20.5, fop.jar and the associated batik.jar and avalon-cvs-20020806000.jar * (iii) Input file: members.xml * (iv) Transforms: letter.xsl, letter2fo.xsl, * env.xsl, env2fo.xsl, * renewal.xsl, renewal2fo.xsl * Compile: * javac -classpath .;fop.jar;avalon-framework-cvs-20020806.jar SimpleJaxp.java * * Execute: * java -Xmx4 -classpath .;fop.jar;batik.jar;avalov-framework-cvs-20020806.jar SimpleJaxp * * Alternative: * cocoon: pipelines like this: map:match pattern=renewal map:enerate src=members.xml/ map:transform src=renewal.xsl / map:transform srcrenewal2fo.xsl / map:serialize type=fo2pdf/ /map:match */ public class SimpleJaxp extends java.lang.Thread { public static void main(String[] args) throws javax.xml.transform.TransformerException { java.util.Calendar cal = java.util.Calendar.getInstance(); long start = cal.getTimeInMillis(); transformToPDF( letter, members.xml, letter.xsl, letter2fo.xsl ); transformToPDF( env, members.xml, env.xsl, env2fo.xsl ); transformToPDF( renewal, members.xml, renewal.xsl, renewal2fo.xsl ); System.out.println( Elapsed + ((java.util.Calendar.getInstance().getTimeInMillis() - start + 500)/1000) + seconds. ); try { sleep(24*360); } catch (InterruptedException e ) { System.err.println( sleep() Interrupted. ); } } public static void transformToPDF( String namePart, String xmlFileName, String xsltFileName1, String xsltFileName2 ) throws javax.xml.transform.TransformerException { File xmlFile = new File( xmlFileName ); File xsltFile = new File( xsltFileName1); File out1 = null; try { out1 = File.createTempFile( namePart, .xml ); out1.deleteOnExit(); } catch( IOException ioe ) { System.err.println( Could not create temp file ); System.exit(0); } //*** First transformation *** Source xmlSource = new StreamSource(xmlFile); Source xsltSource = new StreamSource(xsltFile); Result result = new StreamResult(out1); TransformerFactory transFact = TransformerFactory.newInstance(); Transformer trans = transFact.newTransformer(xsltSource); trans.transform(xmlSource, result ); trans = null; //*** Second transformation *** File xsltFile2 = new File( xsltFileName2); Source
RE: Merging XML and FO files
On Wed, 2003-11-19 at 14:59, [EMAIL PROTECTED] wrote: The instructions at this link (http://xml.apache.org/fop/running.html#standalone-start) seem pretty clear to me. I think the piece you are missing is an XSLT stylesheet to convert your XML to XSL-FO. There are some useful articles at ibm's Developerworks web site. Ten seconds on teoma or google ought to get you there. -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
FOP Performance
I was curious about FOP Performance and decided to run a program of mine under Java Memory profiler. It appears that a high runner in FOP is PropertyList.findProperty(). If anyone would like to see JPEG's of a couple of related screen dumps, I could post them to the list or send under separate cover. I have started using Cocoon and FOP again after absence of a year or so. The improvements in both are noticeable and welcome. Well done. [Anyone else watching John Madden and crew tonight ?] -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
FOP Performance
Ok. Here are screen dumps of my JMP test of FOP. Scenario: Three PDF's are produced, a letter, application form and an envelope. For a mail-out for a non-profit organization. (My other choice was Access 2000). There are 400, 800 and 400 page images produced from something that used to run in Cocoon, now wrapped in a variation of SimpleJaxp.java from the O'Reilly Java and XSLT book (Eric Burke ?) to run on the client's computer. Each PDF has the same structure: two XSLT's (i) simple set-up merging content with database data (400 members) (ii) XSL-FO run which feeds FOP through javax.xml.transform.SAXResult(). I won't share the data right now but the program normally runs for about five minutes on an Athlon 800, RH 9 and Java 1.4.1. I thought this was too slow even if my XSLT code is less than divinely inspired. I built and installed Java Memory Profiler from: http://www.khelekore.org/jmp/performance.html and started a test. This runs slowly but it appears to identify some code that bears investigation. Here are some screen shots of my results: The last file list_jmp3.jpg was taken just before the program terminated. Obviously, PropertyList-HashMap lookups are taking a LOT of time. The PropertyList.java class is a lot more complex than a simple hash lookup and I suspect it might be profitable to take a look. Right out of the starting blocks, the constructor makes no reference to Initial Capacity or Load Factor. I am confused by the code and the seeming hurry to look everything up in the parent property lists. -- John Austin [EMAIL PROTECTED] attachment: list_jmp1.jpgattachment: list_jmp2.jpgattachment: list_jmp3.jpg- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
FOP ~ PropertyList search gives linear performance
Further to my notes on FOP performance characteristics of the PropertyList methods, it appears (afaik) that the design of this part of FOP exhibits linear tendencies. Properties are stored in a tree where each 'level' corresponds to a formatting object (fo:block, fo:table) which has local attributes (properties) and inherits further properties from enclosing objects. Each level's properties are stored in a HashMap. Inheritence is modelled by pointers to the 'parent' and this appears to be the cause of pathological performance in the findProperty() method. The step that looks at the parent pointer is equivalent to a linear search because there will be small numbers of attributes at each level and many levels to search. It would seem to follow that performance would benefit by specifying all properties at the innermost level. I suspect that this benefit would be limited by the additional costs of parsing additional attributes. One could mitigate the effects by specifying most properties at intermediate levels with long lifetimes and possibly by limiting the number of extraneous levels. This approach might be pragmatic in some cases but it is problematic and would not provide a long-term solution. I don't think the redesign of this component will be trivial as there are trade-off's in performance due to the fact that the tree could be quite deep and the highest levels won't have long lifetimes that could benefit from more complex structures (which cost more to construct). I do think the component should be redesigned but I don't offer a replacement as I don't know what the future of the 0.20.5 code branch is. -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Properties redesigned in CVS Head
So what is the schedule for the next release ? -- John Austin [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Learning needeed
On Tuesday 28 May 2002 02:09 am, you wrote: Ramon Maria Gallart wrote: Hi all! I want to learn how to use FOP well and all the I found the XSL FO Tutorial on www.renderx.com quite useful. Also, if And I think there is something on the Antenna House web site: http://www.antenna.co.jp/XML/downfree/howtoRC/Howtodevelop-en.pdf
Re: Why is FO(P) a superior model than what most proprietary tools propose
On Monday 29 April 2002 13:51, you wrote: Thank you for all these good ideas. Would anyone happen to know of an industry analyst study on the advantages of XSL FO ? This is to lend some credibility to my recommendation. Well, Gates and his minions are squealing like stuck pigs. Where there's smoke there's fire. Actually, that is the crux of the matter. IMHO, Open Source is yet another manifestation of Mecalfe's Law: The utility of a network increases as the square of the number of nodes on the network. All of those Open Source developers out there have become a more efficient team than Microsoft or anyone else can ever assemble. IBM, Sun and a few others seem to have realized this. Microsoft's proprietary approach can't win in this new world, any more than steam locomotives could win against diesel-electric (the laws of thermodynamics are a bit better-known than Metcalfe's law). My other example of Metcalfe's Law in action is Sept 11th. Compare the information flows of those events with the day of the JFK Assassination and the day of the Challenger explosion. Todd Beamer and the other passengers on Flight 97 had cell phone nodes to talk to family members who had televisions which revealed the hijacker's plans. The network gave them the information to make the decision to give their lives to save people in Washington DC. Think about that. They were able to make that decision in this age of hoaxes, spam, worms and viruses.
Re: Several questions about FOP
1) Can one use FOP on a host-environment, ie. IBM mainframe computers, or does EBCDIC somehow cause problems FOP is written in Java and Java uses UNICODE for characters. I know better than to suggest that EBCDIC won't be problematic but in theory it's not supposed to be a problem. Although it's been a while since I served on a battleship ;-) I understand that Big Blue now provide Linux on the Operating Systems formerly known as MVS and/or VM.
Re: force-page-count, blank page and text in this blank page
On Wednesday 10 April 2002 05:00, you wrote: Hy I'm on a document composed with diferent page sequences. Those sequences are put together to realise a final document. So I have to generate sequences with a force-count-page to have an even number of pages in each sequence. The problem is that when a page is forced it appears without text in, and I would like this page to contain a text like : normal blank page . How can I do such a thing ? This is discussed in The XSL Companion by Neil Bradley; http://www.awl.com/cseng pup 2000. Chapter 17: XSL. You can also get the gist of this from Elliot rusty Harold's XML book or from the tutorials on the www.renderx.com, antennahouse.com or from IBM.com's developerworks or alphaworks sites. Specifically see pp 150-155. root ... layout-master-set simple-page-master master-name=first-page !-- TEMPLATE 1 -- /simple-page-master ... more s-p-m's for right-page, left-page and blank-page ... page-sequence-master master-name=ChapterSequence repeatable-page-master-alternatives conditional-page-master-reference page-position=first master-reference='first-page ... blank, odd and even pages omitted /repeatable- ... /page-seq... /layout-master-set page-sequence master-reference=ChapterSequence ... repeat static content blocks and a single flow/ object /page-sequence root