Re: Again out of Memory Error -2
Ok I'll try to answer both part 1 and 2 here : as for the JVM memory parameter with servlet engines : Your servlet engine is executed in a JVM that must allow you to set memory parameters. I don't know about every ServletEngine or ApplicationServers but you can do this with Tomcat or Websphere so I guess it exists everywhere. As for multiple page sequences, it is simply a fact that the current FOP implementation seems to keep a whole page sequence in memory before it writes it down. So the biggest bage sequence you have, the more heap size you need. Therefore it can be helpfull to create separate page sequence anytime you can. In your case, it is the worst situation : one long table. You have to start and stop the table each time you want to change page-sequence. Some guy on the list had the same situation to deal with. He manage to have an average number of x row per pages. Then he twisted his XSLT stylesheet to take x rowData (detail element in your case) to build one page sequence containing one table with the x rows and so on. He has ended with a 97 page-sequence document. This may be a little extreme but it works. The archive pointer I gave you does this trick. In many case, you have to deal with many tables wich are not always 100 pages long then you can place page-sequences every time you know you can have a page break. I hope this helps. Cyril
Re: Again out of Memory Error
I suppose you are using FOP 0.20.3... first, what amount of memory do you give to FOP ? meaning do you use -Xms and -Xmx jvm parameters to give Java JVM the memory needed ? Second please state how many tables there are in your document, and how many pages long the longest table is. Do you use as many page sequences as you can ? Long tables and long page sequences are known to increase the memory requierments of FOP. error has nothing to do with xml. Xsl could be used to create additionnal page sequences. List Archive shows you how. I hope that helps. Cyril At 00:26 05/06/2002 +1000, you wrote: Hi, Recently many people were discussing abt avoiding out of memory error,I read previous threads but couldn't able to find solution for me.
RE: speed
check the archive list :)) http://marc.theaimsgroup.com/?l=fop-dev&m=101310355622557&w=2 Have a nice performance boost. Cyril At 11:00 03/06/2002 -0400, you wrote: do you have an example of breaking up a long table into multiple page-sequences?
RE: speed
Ok, this is slow figures. We have much longer tables and yet we do not have such low rate. Do you have forward reference ? For instance, do you have the famous page X of Y in your page footer ? Long tables and forward references are the two FOP speed issues. You have to cut your table to pieces and put each part in a separate page-sequence. It helps a lot. As for forward Reference, you have the choice to wait for the redesign to use streamed PDF (if they intend to) of you may use some 'little-dirty' workaround : Do not use forward ref, if you have a TOC at the head, put it at the end and swap it back to the head with iText. If you are using Page X of Y, do not use the but write the total number of pages yourself using iText once again. This is not "by the book" rules. This is workaround. Redisign will save us all (Keiron, hear us ! :) ) cheers Cyril At 10:18 03/06/2002 -0400, you wrote: for example a 17 page document takes 100 seconds.. it has a header, footer and one long table as the body. peter
Re: speed
Hello, I am wondering how slow your FOP project is. Could you give us some figures please ? We are rendering 20 to 500 pages documents with a 1,5 or 2 pages per seconds rate. This speed is convenient for the use we make of FOP. We have many long tables in our documents, and a few images. What about you ? About the threading request : if FOP process uses most of the CPU, it would not be usefull to multiply the used threads. You could achieve something if you part your FO source and spread it across a pool of FOP server that would handle each part and then merge the resulting files into one (using iText or some other pdf package). Hope that helps. Cyril At 09:45 03/06/2002 -0400, you wrote: Is there any way to speed up FOP rendering? Can you specify to the Driver Class to use x number of threads?
Re: Is it possible ?
Hi Xavier, as for the 300 dpi I cannot say but you might search the archive of the list about this. In order to Write/Print/Read/select protect your document, FOP does not do this, simply because it is not part of XSL FO. Yet, you may use another Java tool combined with FOP to do this : the iText library. You can use it to create a copy of your FOP generated PDF wich you can read protect and print protect and write protect and so on. iText tutorial shows you how to do this. I think someone on the dev-list has done some work to propose a FOP extension that uses iText to do this kind of stuff. Once again, you may look for it in the achive. Even if you don't use FOP extension, you may use iText explicitly after FOP has generated your PDF. Cyril At 09:03 30/05/2002 +0200, you wrote: hello, Is it possible with fop to get a 300 dpi resolution for a Pdf File ? Is it possible to write protect, print protect, read protect with a password a Pdf File. If it is, please give me clues. Xavier
Re: Why FOP can not support outputing html?
Hi, Use FOP to render to PDF, PS, MIF, and maybe soon RTF... if you want to have a HTML transformation of your FO source, you can use the fo2html XSL styleSheet provided by RenderX. (http://www.renderx.com/fo2html.html) This is a different Work. transforming into html is simple transformation that will let the final renderer (a Browser in this case) do the hard work (like displaying images, and all the layout process). When you are rendering to PDF, FOP does all the hard work for you. Cyril At 12:42 30/05/2002 +0800, you wrote: I want to use FOP to output html and pdf? But it don't support html outputing, html is simple,why not support? how to resolve this problem
Re: 0.20.3 gives odd results with some fonts
Hi Ronald, I think this was an error in the former FOP version. If you use unicode values of the needed character everything works perfectly with 0.20.3RC or 0.20.3... Cyril At 17:13 28/05/2002 +0200, you wrote: Hi there, Today I update my FOp version from 0.20.3RC to 0.20.3 and I discovered that my document containing characters in fonts like symbol and ZapfDingbats, suddenly had lost almost every character. Consider the following: M M M With fop 0.20.3RC all characters were poperly shown. With this new version I get the unknown character symbol. What's going on here? Cheers Ronald
Re: FOP's performances...
Philippe, I do not think that native compilation is the main solution for FOP's speed. The main issue is the overal architecture of FOP. This is adressed by the redesign effort. If you are interested, please, go to the FOP web site to see the list of addressed issues and to see where you could help the FOP team. As for me, speed issue only appear with large document around 200-2000 pages (I don't even mention above these values). Of course, the more raw computing your software has to do, the more efficient it will be when native compiled. Yet I do not think this is the issue here. Hope this helps. By the way, what average speed would you consider ok ? Cyril At 11:32 22/05/2002 +0200, you wrote: At present there are problems of speed... To improve FOP's performances, Does anybody have to test products to compile class Java FOP ? Example: http://www.excelsior-usa.com/jet.html http://gcc.gnu.org/java/
Re: protection
You can use iText after you have generated your PDF. It is a Java PDF API that allows you to manipulate pdf pages by pages and to control PDF document properties like encryption and viewing and printing... it's easy to use and only have a few limitation like some image type not handled. see http://itext.sourceforge.net Cyril At 10:08 16/05/2002 +0200, you wrote: hello all, Is there a way to password protect a pdf ? Xavier
Re: Memory usage on lage documents
Mirko, there are many post on this list that point out the weaknesses of the FOP engine. The main enemies are : long page sequence and forward references. If you use long tables, then you most certainly have long page sequences. If you have logical page break in your tables, please, change your XSLT code to generate page-sequence break in your tables. The shortest page sequence the least memory used. As for the "lot of time" to complete the work, it appear that forward reference may be responsible for this. I hav had the same proble for 400 to 1000 pages documents that have the famous "total number of pages" at the bottom of every pages. I have successfully set up an unclean workaround : I generate my "total number of pages" after PDF generation is complete using iText software. I even generate my toc at the end of the fo file and then I move it at the top of the document and then write the number of pages at the right place on every pages. This is pretty simple if you look at iText sample code (itext.sourceforge.net). The last thing : C++ or C or ASM formatter won't help much because it is the global design that makes FOP slow and memory consumer. The redesign is on it's way. The workarounds I have mentionned are just gizmo to allow one to wait for the next generation of FOP. Hope that helps, Cyril At 16:29 06/05/2002 +0200, you wrote: Hi there folks! I've a question regarding the memory usage of the fop formatter with large documents. I'm rendering a large list with about 450 pages and 1 table entries. When i look ad the memory usage of the fop formatter in my win32 enrironment, i see that it consumes about 180 MBytes of memory and it needs a lot of time to complete its work! Is there any way to make it faster or to let it use not so much memory without throwing an out ot memory error? Is there any c++ formatter out there that is open source and can do the work faster and without so much memory usage? Thanks a lot Mirko
Re: Why is FO(P) a superior model than what most proprietary tools propose
Hi Fop-users I do agree that XML data offer interoperability and many many high feature regarding to data tranform and sync and exchange. XSL FO is really a nice solution because it helps to build paginated presentation layers that longs for a long time. But I would like to say that FO and other XML subtongues are not here to kill proprietary tools. Only format is an issue here. This is why FO can be a real good choice. It does not tie you to a tool vendor. Yet it does not kill tools, it simply takes care of some part of the job. If a publishing tool is only a proprietary format, than FO will make it obsolete but then it would only be the proof that the tool had no real added-value. Many Publishing tools offer high level publishing option to create, manage and maintain content. FO just answer one of the issues : standard paginated description. Having a W3C Recomendation is a real superior model in this case. As for other questions : the relation between XSL and XSL FO offers a decoupled paginated description layer. XSL tells you that tranformation is different from Formatting by naming xslt and fo namespaces. They want solution providers to keep this in mind in order to offer long term stability and higher level publishing model. For instance, you can use the page number as a parameter to test if you use LaTeX (this is a great language, ver mature. I hope thousnds of TeX/LaTeX people will come to work on FO) but it is forbidden in FO. You do not programaticaly have acces to the value of the page-number of a specific page . So you will have to test something that has some meaning in your XML data with xsl. This way, you really have decoupled logic/presentation layer. One may see it as a disadvantage but it helps you to focus on each layer/logic/responsability level thus allow you to have higher level maintenance process... Ok, enough now, it is kind of difficult to sum this up... Hope that helps... Cyril At 12:59 29/04/2002 +0200, you wrote: I do not know the proprietary tools. What can I say to you that will convice you? The power of standards and open-source. Standards allows interoperability. You do not need to buy the specs of any closed-source format in order to make a bridge to (let's say) PDF or RTF :-) Force of the open-source is that improvements in the software impacts all the users. Apache httpd is the most significative example (or Linux also). The third problem is that if everyone migrates to FO, the companies behind those proprietary formats will disappear. If you plan to use you datas for a long time, it is rather a difficult choice. At last, using a XML format allows it to get its content from different sources. For example, a big usage of XSL:FO is for dynamic PDF creation from various (very) different XML sources. Patrick Andries wrote: Before convincing people to use specifically, FOP I would like to convince people that FO is a superior model than traditional model of proprietary solutions (3B2, Compuset) for documents that both FOP and those traditional tools can produce. In other words, is FO a good strategic directions. Some questions a bit more precise : 1) What are the advantages of people using XSL-FO as page description language rather than the ones their could be using with proprietary tools ? 2) I understand that everything related with XML (XSLT/XSL-FO) has a modern flavour that few techies can resist, but what are the objectives reasons ? 3) Are they any advantages to FO being integrated with XSLT that the proprietary tools would not have ? Thanks Does somebody know if any of the big software publishing companies are considering XSL-FO support ? P. Andries
RE: FOP performance vs RenderX performance
mmm wrong info, you might be confused by another project call REXP. RenderX is a commercial tool that is not slower nor faster than FOP in absolute. It depends on the complexity of your document and on the FO feature you are using. Fop is easy to use, REC compliant and fast for non web large document. It is also open sourced and free. It also support SVG through Batik ! Tons of good points :)) RenderX has more FO feature implemented regarding the current spec, also it is sometimes under FOP regarding some (long tables). What is the choice ? All FO processor have memory consumption issues. The weak point. As for me Fop is the answer even though RenderX team has done some nice job. Cyril At 14:23 03/04/2002 +0100, you wrote: Last time I looked at RenderX, I think I saw something that stated or implied that RenderX used FOP or was based on it, hence RenderX is essentially a layer on top of FOP and so will be slower. It might be worth checking. -Original Message- From: Irina Grigorieva [mailto:[EMAIL PROTECTED] Sent: 03 April 2002 14:11 To: [EMAIL PROTECTED] Subject: FOP performance vs RenderX performance Hi! My apologies if this question has already been discussed or does not fit the forum topic. I try to compare performance of FOP and RenderX, but all I have found out is that FOP formats much faster than RenderX (evaluation version). Unfortunately, RenderX evaluation accepts input/produces output only in file format (filenames as input) and there is no capability to count the actual time of rendering, but the time values is very frustrating.:-( However, I expected RenderX as a commercial product to be more advanced in the speed of processing. Have I missed something important? Can anyone help me? Thanks in advance. BR, Irina.
Re: Options
Hi all, I think this thread would be more usefull on the dev list, but since it's here already... Usually, use of static classes can mess with server environnement that are able to elegantly restart themselves without shutting down the JVM they use. If classes are not taken off memory, values held by static classes remain There is a design pattern that is meant to handle this case : the Singleton. you make the class instanciable just once at a time. This is easily made in Java. I don't know if this answer the question, but that's my $0.02 thought. At 00:31 28/02/2002 +1000, you wrote: Jeremias, Pardon my ignorance, but could you sketch out the nature of the problem for me?
Re: Using FOP in an applet ?
Embeding FOP in an applet would make your applet humongous. It would only be possible in a LAN configuration with high band-width. I think the best way would be to allow a server side pdf generation with fop that would be used by your applet. Hope that helps Cyril At 16:03 06/02/2002 +0100, you wrote: Hi, What I would like to do is send XML to the browser client (MS-IE6, in the case of our extranet, but not limited to.) There, show it on screen as html/css (already possible with XSLT and the MS-XML dll.) and print it as PDF ... (Impossible for now, why didn't MS implement css @page.) Would it be a *solution* to embed FOP in an applet and use it on the client to print PDF ? PS : After some research, I didn't find anything about "FOP and Applet". I know that it it possible to use FOP with Servlet, PHP and many Apache project. I know about WebGrabber, PdfLib, RenderX ... (This means : I am not expecting people on this list to be at my service, but I came to the
Re: Why used FOP instead of...
FO offers a way to produce high quality documents way beyond Crystal Reports possibility. If your needs are entirely fullfiled by tools like Crystal Report, I suggest you stick to it or advise your customer/user to do so. On the other hand, If you have to deal with more sophisticated needs, or you can not be sure of the near future demand of your customer / user or you have to inter operate with other software you can then think about a more portable solution. FO offers independancy. You mention FOP, I agree it does not cover all FO, and that speed and memory issues exist. Not only FOP is not the only FO implementation, but I am sure this product will do good trhough redesign. The problem is FO adress a much larger problem than "is my current reporting tool is ok ?". It is made to offer open and independant printing / rendering solution over a wide range of needs / situation. Enthousiasm comes from the near future possibility of FO. Technology, wether new or old is never the issue. My answer is toward the list, because I think it is not so off-topic. At 09:42 30/01/2002 -0500, you wrote: I would like to know why FOP enthousiast (I am one) are using FO rather than products such as Crystal Reports or other such software (anyone Jetfoms ?). Just for the fun of playing with new technology ?
use of multi page tables cause memory problems
Hi all, I have been following the dev list list from some time now, and I am using FOP for a few month. This piece of software totally respond to my formatting needs. I have send a more developper's version of this question to the dev-list. My issue is with memory consumption as soon as I use tables more than one page long. I have tried the "use as many page sequence you can" trick as many have told me to. The trouble is the memory still grows when I use multi-page tables. I understand that the biggest of my tables use the more memory, but it seems that it grows much much more than expected and during the whole rendering, even if the biggest table is in the first page-sequence. I use 0.20.3rc and I would be very very thankfull if anyone has clue or experience generating 100 to 500 pages with long tables within 256Mo Thanks Cyril