Re: i18n support
Kevin, There are a number of things you need to do to get Chinese (or the characters of any language) to display in your PDF documents. 1. The encoding of your stylesheet, or FO document must match the encoding of the embedded characters. That means that if you are embedding chinese multi-byte characters in your document, you must put an encoding attribute on the stylesheet that matches the encoding used to create the multi-byte character (You seem to be using Big5, also available is UTF-8 etc.) I use ?xml version=1.0 encoding=UTF-8? 2. If you are using and XSL stylesheet to generate the FO, you need to make sure that the encoding is also passed through to the FO document (which may only exist in memory but you still need to pass the encoding) 3. You need to embed a font that will display that character. And the font must map the multi-byte character in the encoding to the character that you want. An alternative (which is how I do it because I got tired of wrestling with all the font character encoding issues) is to convert all of your multi-byte characters into unicode character entities. They can be found here: http://www.unicode.org/charts/ I use Microsoft word's save as web page feature to generate the entities. Chuck Paussa Kevin Yeung wrote: Hi all I would like to know if FOP supports i18n. Can I embed Chinese characters in my XSL and export it to PDF? Thanks regards Kevin
Re: Float or alternative
Thibodeaux, Paul wrote: Any idea on when FLOAT will be implemented? Are there other ways to nicely float text around an image to get a professional looking docuemnt? Paul, Float isn't coming soon. Therefore, you have to calculate your text lengths and then manually create the wrap around. I've had some success with this method, doing it professionally will require looking at the font's xml file and actually calculating the word wraps and character kerning. Page width = X || + |Line height = Y + Image width = W +-+ | | | | Image height = Z +-+ Characters per unit length in line of text = V # Lines of text = ceiling(Z / Y ) Characters / line = (X - W) * V Create a two column table, one column holds the image, the other, some text. How much text = ceiling( Z / Y ) * ( X - W) * V Chuck
Re: fo:marker - how to show the broken secion on the next page
Argyn, (This is a work-around until markers are fixed.) What you need to do is put one marker at the beginning of the block and another at the end. FOP complains about this with a warning but still processes it. You can then use fo:retrieve-marker retrieve-class-name=className retrieve-position=first-including-carryover/ Chuck Argyn Kuketayev wrote: I have a block. Whenever the page breakes it, I want to show its title on the continuing page. I tried fo:marker. Unfortunately, it doesn't do what I want. I tried different bounadries and positions, but none of them works. It shows me the block which was started on the page, it doesn't see the block which was started on the previous page Need some help. Argyn
Re: FW: keep-together in a multi-column document
Thibodeaux, Paul wrote: I'm using FOP to build a multi-column, multipage document that is essentially a directory of sorts, with names, addresses, and phone numbers. I'd like to keep all the lines of each entry together in the same column, but keep-together.within-column on the parent block doesn't seem to be working to do this for me. It seems to be ignored. Does anyone have any ideas on this? You need to use fo:region-body column-count=3/ (or 4 or 2 or 5 etc.) Here's a sample for a dictionary or directory which uses markers for the page headings etc. Chuck fo:root xmlns:fo=http://www.w3.org/1999/XSL/Format; fo:layout-master-set fo:simple-page-master master-name=page-first page-height=8.5in page-width=11in fo:region-body margin-top=5cm margin-bottom=.5in margin-left=.5in margin-right=.5in column-count=3/ fo:region-before extent=6cm/ /fo:simple-page-master /fo:layout-master-set fo:page-sequence master-reference=page-first fo:static-content flow-name=xsl-region-before fo:table table-layout=fixed fo:table-column column-width=5.5in/ fo:table-column column-width=5.5in/ fo:table-body fo:table-row fo:table-cell fo:block keep-together=auto first-starting-within-page: fo:retrieve-marker retrieve-class-name=entry retrieve-boundary=page retrieve-position=first-starting-within-page/ /fo:block /fo:table-cell fo:table-cell fo:block keep-together=auto text-align=end first-including-carryover : fo:retrieve-marker retrieve-class-name=entry retrieve-boundary=page retrieve-position=first-including-carryover/ /fo:block /fo:table-cell /fo:table-row fo:table-row fo:table-cell fo:block keep-together=auto last-starting-within-page : fo:retrieve-marker retrieve-class-name=entry retrieve-boundary=page retrieve-position=last-starting-within-page/ /fo:block /fo:table-cell fo:table-cell fo:block keep-together=auto text-align=end last-ending-within-page : fo:retrieve-marker retrieve-class-name=entry retrieve-boundary=page retrieve-position=last-ending-within-page/ /fo:block /fo:table-cell /fo:table-row /fo:table-body /fo:table /fo:static-content fo:flow flow-name=xsl-region-body fo:blockfo:marker marker-class-name=entryOne/fo:markerOne One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One One fo:marker marker-class-name=entryOnex/fo:marker/fo:block fo:blockfo:marker marker-class-name=entryTwo/fo:markerTwo Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two Two fo:marker marker-class-name=entryTwox/fo:marker/fo:block fo:blockfo:marker marker-class-name=entryThr/fo:markerThr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr Thr fo:marker marker-class-name=entryThrx/fo:marker/fo:block fo:blockfo:marker marker-class-name=entryFou/fo:markerFou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou Fou fo:marker marker-class-name=entryFoux/fo:marker/fo:block fo:blockfo:marker marker-class-name=entryFiv/fo:markerFiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv Fiv fo:marker marker-class-name=entryFivx/fo:marker/fo:block fo:blockfo:marker marker-class-name=entrySix/fo:markerSix Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six Six fo:marker marker-class-name=entrySixx/fo:marker/fo:block fo:blockfo:marker marker-class-name=entrySev/fo:markerSev Sev Sev Sev Sev Sev Sev Sev Sev Sev Sev Sev Sev Sev Sev Sev Sev Sev Sev Sev Sev
Re: degree symbol in pdf
[EMAIL PROTECTED] wrote: Hi, I'm unable to get the degree symbol('#xB0;') to be displayed properly in the pdf while displaying a temparature value, whereas i get the cubed symbol('#xB3') correctly displayed while showing a flow value such as meter cubed per hr. We have been sucessfully using FOP over the past six months for transforming xml into pdfs using fo transformations in websphere3.5.4 servlet environment and the browser as ie5.x. Any help is greatly appreciated. I was able to get the degree symbol just fine with fop0.20.3. Here's my fo fo:root xmlns:fo=http://www.w3.org/1999/XSL/Format; fo:layout-master-set fo:simple-page-master master-name=page-first page-height=8.5in page-width=11in fo:region-body margin-top=5cm margin-bottom=.5in margin-left=.5in margin-right=.5in/ fo:region-before extent=6cm/ /fo:simple-page-master /fo:layout-master-set fo:page-sequence master-reference=page-first fo:flow flow-name=xsl-region-body fo:block font-family=Edwardian Script ITC#xB0; - #xB3;/fo:block fo:block font-family=Viner Hand ITC#xB0; - #xB3;/fo:block fo:block font-family=Georgia#xB0; - #xB3;/fo:block fo:block font-family=Bookman Old Style#xB0; - #xB3;/fo:block fo:block font-family=Book Antiqua#xB0; - #xB3;/fo:block fo:block font-family=Helvetica#xB0; - #xB3;/fo:block fo:block font-family=Times-Roman#xB0; - #xB3;/fo:block fo:block- This font set does not have these glyphs/fo:blockfo:block font-family=ZapfDingbats#xB0; - #xB3; /fo:block fo:block font-family=Courier#xB0; - #xB3;/fo:block /fo:flow /fo:page-sequence /fo:root
Re: performance problem renedering nested fo-tables
Argyn, In your case it looks like you should investigate using fo:marker and fo:retrieve-marker to get your page headers. Each level of your table nesting would use a different marker-class-name. The page header can then retrieve the contents of that marker (The contents do not print in the page, are there only to be retrieved) in the fo:static-content flow-name=xsl-region-before put something like fo:block Chapter: fo:retrieve-marker retrieve-class-name=chapter retrieve-boundary=page retrieve-position=first-starting-within-page/ Section: fo:retrieve-marker retrieve-class-name=section retrieve-boundary=page retrieve-position=first-starting-within-page//fo:block And in the fo:flow flow-name=xsl-region-body put fo:marker marker-class-name=chapterOne/fo:marker at the beginning of each chapter etc. Chuck Argyn Kuketayev wrote: Do u know any other ways besides nested tables to achieve the same goal? my goal is whenever the nested section brakes at the page end to have continuing headers on the next page. So, Right now for one nested table I've this: fo:table - with one cell - this is for one root table, or a chapter of the book. so, the chapter title will be on every continuing page. fo:table-row fo:table with one cell - this wraps every row of the root table, or a section of the chapter, so when it breakes, its title on the next page fo:table-row fo:block - this contains the content of the row, e.g. coulmn listed as bullet items fo:block - this contains the nested tables, or sub-section of a chapter fo:table with few cells - this is for the nested table, or for a sub-section of the section, so when it breakes, its title is on the next page fo:table-row - every row contains one row of the sub-section, e.g. tabular view of columns of the fo:block - this contains one more nested tables, or sub-section of a chapter fo:table with few cells - this is for the nested table, or for a sub-section of the section, so when it breakes, its title is on the next page fo:table-row - every row contains one row of the sub-section, e.g. tabular view of columns of the row ... AND SO ON, there can be any number of nested tables further I don't know how to get rid of these all nested tables yet. When I tried to profile FOP, I've seen that one class takes large amount of time to process, it's FOTreeBuilder.endElement() Argyn
Re: Region Border
J.Pietschmann wrote: FOP Newsgroup (@Basebeans.com) wrote: Or Alternatively create a block that fills the region-body? Try an absolutely positioned fo:block-container. There are some exampoles in docs/examples. I'm not sure whether borders are implemented for block-container, if necessary, embed an appropriate one cell table (set width on the fo:column, height on the fo:row). J.Pietschmann Borders have been implemented for block-containers.
Re: computing table-column width
Florence Deforge wrote: Hello I need to create a style sheet which displays tables. In the xml instance tables are defined as follow : table line cell.../cell cell.../cell ... /line /table Tables can have any number of columns and I wonder if it is possible to create a single template that would first compute the number of column (assuming all lines have the same number of columns) then compute the column width according to this number. Has anyone done something similar ? Here's some totally untested code but, if you debug it, it should work. xsl:template match=table fo:table width=190mm xsl:for-each select=./line/cell fo:table-column column-width=proportional-column-width(1)/ /xsl:for-each fo:table-body xsl:for-each select=./line fo:table-row xsl:for-each select=./cell fo:table-cellxsl:value-of select=.//fo:table-cell /xsl:for-each /fo:table-row /xsl:for-each /fo:table-body /fo:table /xsl:template Chuck
Re: table-layout=fixed
Gabor, Here's some sample code. Notice the use of proportional-column-width() That allows you to do your percentage column widths. proportional-column-width allows you to proportion the widths of those columns not defined by a fixed width. You also need to designate the width of the table in the table tag. Chuck Paussa fo:root xmlns:fo=http://www.w3.org/1999/XSL/Format; fo:layout-master-set fo:simple-page-master master-name=first-page page-height=285mm page-width=200mm margin-top=5mm margin-bottom=5mm margin-left=10mm margin-right=10mm fo:region-body margin-top=68mm margin-bottom=20mm/ fo:region-before extent=68mm region-name=header-first/ fo:region-after region-name=footer-first extent=20mm/ /fo:simple-page-master fo:simple-page-master master-name=rest-page page-height=285mm page-width=200mm margin-top=5mm margin-bottom=5mm margin-left=10mm margin-right=10mm fo:region-body margin-top=68mm margin-bottom=20mm/ fo:region-before extent=68mm region-name=header-first/ fo:region-after region-name=footer-first extent=20mm/ /fo:simple-page-master /fo:layout-master-set fo:page-sequence master-reference=first-page fo:static-content flow-name=header-first font-family=Helvetica font-size=7pt font-weight=normal fo:block header /fo:block /fo:static-content fo:static-content flow-name=footer-first fo:blockFooter/fo:block /fo:static-content fo:flow flow-name=xsl-region-body fo:table table-layout=fixed width=180mm font-size=8pt fo:table-column column-width=20mm/ fo:table-column column-width=proportional-column-width(1)/ fo:table-column column-width=proportional-column-width(2)/ fo:table-header border=solid 1px black fo:table-row display-align=after color=black font-size=7pt font-family=serif font-style=normal font-weight=normal height=4mm background-color=transparent fo:table-cell border=solid 1px silver fo:blockDATE/fo:block /fo:table-cell fo:table-cell border=solid 1px silver fo:blockTIME/fo:block /fo:table-cell fo:table-cell border=solid 1px silver fo:blockInfo/fo:block /fo:table-cell /fo:table-row /fo:table-header fo:table-body fo:table-row fo:table-cell border=solid 1px silver fo:block04/18/2002/fo:block /fo:table-cell fo:table-cell border=solid 1px silver fo:block2pm/fo:block /fo:table-cell fo:table-cell border=solid 1px silver fo:blockAh isn't this a wonderful thing? Look this column is twice as wide as that other one./fo:block /fo:table-cell /fo:table-row /fo:table-body /fo:table /fo:flow /fo:page-sequence /fo:root gabor wrote: hi, what should i do to get rid of that [WARN]: table-layout=auto is not supported, using fixed! message? i tried to put table-layout=fixed into the fo:table tag, but it didn't help... and btw. what's the status of tables in fop? i understand i can't use fully dynamic tables, so i have to specify some width info... and can i specify % as column-width? thanks, gabor
Re: tabulator
Yvonne, While FOP is not Microsoft Word, it can do what you want, if you know what it is that you want done. 1. Left tabulatorfo:table-cell text-align=start 2. Right tabulatorfo:table-cell text-align=end 3. Center tabulatorfo:table-cell text-align=center 4. Decimal tabulatorfo:table-cell text-align=end plus you need to make sure that the number of digits after the decimal point are equal for all numbers. If they aren't equal, then add the right number of zeros after the number to pad it correctly wrapped in an inline element fo:inline font-color=white000/fo:inline Chuck Paussa *-Ursprüngliche Nachricht-* *Von: *Moebius, Yvonne [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] *An: *Fop User (E-Mail) [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] *Datum: *Mittwoch, 12. Juni 2002 16:41 *Betreff: *tabulator Hi, can somebody tell me if there is a possibility to set tabulator positions, please? I need a left tabulator, a right tabulator, a centered tabulator and a decimal tabulator, like in MS Word. Yvonne
Re: Control of long words inside a table cell
Use fo:table-cell wrap-option=wrap Chuck pkrishnaswami wrote: We are using FOP to publish our documents in PDF. Some of the contents in the table cell contain long words; eg: full name of java classes where the length of the package is wider than the cell\column width; The contents of these long words spills beyond the table cell. Is there a way to wrap the word if it reaches the end of the table cell. Here is a snippet of the XSLFO we use for transforming the XML file: fo:table-body line-height=12pt font-size=10pt font-family=Times-Roman space-before.optimum=6pt fo:table-row fo:table-cell fo:block text-align=start border-style=solid border-width=.1mm xsl:value-of select=./logMessage/. /fo:block /fo:table-cell /fo:table-row /fo:table-body /fo:table In the above case, the value of select ./logMessage happens to be one word where the word length is longer than the table-cell width. Response will be appreciated. Thanks. Prabhakar
Re: design help for multiple output formats?
Phillip, What we've done is perform all of the non-output-format transformations into an intermediate node-set. e.g.: xsl:varable name=letter letter salutationDear xsl:value-of select=/xml/@name//salutation xsl:for-each select=./content paragraphHere's some content xsl:value-of select=.//paragraph /xsl:for-each /letter /xsl:variable And then write a set of output-specific transformations xsl:template match=paragraph mode=FO fo:blockxsl:value-of select=.//fo:block /xsl:template xsl:template match=paragraph mode=HTML pxsl:value-of select=.//p /xsl:template Chuck Phillip Rhodes wrote: Hi. I have created a html document as a result of an xsl transformation. All of the content is contained in an xsl file (which is built dynamically from a database and programming). The content (xsl) contains a lot of xsl-commands that do variable interpolation for the report content (e.g. Dear xsl:value-of select=/xml/@name/) A short explanation: the reports are built up sentence by sentence based upon database data and calculations. In addition, each sentence has substitutions in it and conditional logic (e.g. pluralization) My problem is that I want to render the document in pdf, rtf and html formats. While the html one looks good, I can not imagine how I could output in the other formats, without duplicating all the content again and putting the xsl-fo markup in the content. What I think I should do is instead of putting anything html-specific in my content, to put some other markup. After I do my initial tranformation, I could then run it thorough an html convertor, or a xsl-fo convertor (to transform my markup tags). Has anyone come up with a generic markup and the corresponding xsl convertors? Is this a good approach? Thanks. I appreciate you having read this. It would be nice to get some other perspectives. Phillip
Re: Fonts:: Can fop display *any* local font
You can embed any font in the generated PDF following the instructions given here http://xml.apache.org/fop/fonts Your catalog of fonts are in your machine. So create a script to generate the font metric files, edit the userconfig.xml file and then generate an FO document that displays some text in each of the fonts. Chuck Stephen Clarke wrote: Hi all, Is it possible to display *any* locally installed font or are we limited to just a few main ones? As I recall, fop is limited to just four or five main fonts for display in pdf output. Is that correct? I'm interested in making a catalogue of all locally available fonts. I was thinking, one way might be through xml and fop to pdf. But probably not a good idea, no? Last time I did it in Flash, but it was awfully complicated and painstaking. I want some way of arranging the fonts together, sans, serif, cursive, etc. Any help appreciated. -- sc
Re: foregroundColor
Niki I posted a schema to the dev list last week. The schema is pretty good. Feel free to point it out to the folks at XMLSpy. They can use XMLSPY to generate their own DTD from that. The schema has a few tweaks left before I post it here. Chuck Paussa Niki Dinsey wrote: A note about using XML-SPY for fop development. I used it quite a bit lately and while I found it good, the DTD it uses for XSL:FO is far from complete and sometimes incorrect. That's not to say it isn't very useful, just be careful and have the spec (http://www.w3.org/TR/xsl/) handy as well. [Niki Dinsey] Hi there ppl, I've spoken to XML Spy about this a couple of weeks ago, seems they used a DTD referenced from the XSL W3C Working Draft, 21 Apr 1999. This was the last time w3c brought out a DTD for the fo namespace. They (xmlspy) won't allow you to manually edit the auto complete so I guess we're stuck with this outdated version till W3C get round to bringing something new out. Does anybody have a newer version of the fo DTD/XSD Check the mail from XMLSpy below: Niks _ Dear Niks, I have spoken to our CTO and he has said that we have not implemented the new commands due to the fact that the W3C hasn't brought about a new XSL dtd since the http://www.w3.org/TR/1999/WD-xsl-19990421/#AEN7695 version. Until they bring out a dtd we cannot change the elements in the entry helper list. I am sorry, but you cannot change this manually yourself in XML Spy. Kind regards Birgit
Re: foregroundColor
Michael J. Godfrey wrote: Greetings, How do I make this.. fo:table-row height=7mm background-color=#739ECE And add foreground-color=#FF ? I am using XML Spy and the auto-complete doesnt seem to display it. Thanks, Michael Foreground-color = color So: It's fo:table-row height=7mm background-color=#739ECE color=#FF Chuck
Re: table-footer at foot of table problem
Steve What you could do is set the height of each table row to some length ie 5mm. You then know how many table rows will appear on each page. Count up the number of rows in the table, calculate the number of rows that will appear on the last page. Insert Y empty rows at the end of the table to pad out the table to fill the page. Chuck Steve Pitchford wrote: Thanks for the quick reply Scott, I don't think I want to use page footers in this case (although I'm willing to if they can solve what I want to do ) - but I understand where you are coming from. The reason is that the xsl I've written produces documents that go over a few pages and I wanted to put a row at the bottom of the last page to show some totals using table-omit-footer-at-break, but keep the size of the table consistent on all pages ( otherwise I could just put an table after the fixed table ) Steve. -Original Message- From: Scott Moore [mailto:[EMAIL PROTECTED] Sent: 30 April 2002 18:12 To: '[EMAIL PROTECTED]' Subject: RE: table-footer at foot of table problem My guess is table-footer is working exactly as intended. Are you sure you don't want to use a page footer? Something that always gets placed at the bottom of a page? If so, look into using xsl-region-after fo:root xmlns:fo=http://www.w3.org/1999/XSL/Format; fo:layout-master-set fo:simple-page-master master-name=example margin-top=10mm margin-bottom=10mm margin-left=10mm margin-right=10mm page-width=170mm page-height=170mm fo:region-after extent=20mm/ fo:region-body margin-bottom=20mm/ /fo:simple-page-master /fo:layout-master-set fo:page-sequence master-reference=example fo:static-content flow-name=xsl-region-after fo:blockFooter/fo:block /fo:static-content fo:flow flow-name=xsl-region-body. HTH, Scott -Original Message- From: Steve Pitchford [mailto:[EMAIL PROTECTED] Sent: Tuesday, April 30, 2002 1:12 PM To: [EMAIL PROTECTED] Subject: table-footer at foot of table problem Hello. Please excuse me if this has already been asked - I've trawled through the archives and read the FAQ to try to find an answer, but to no avail. I am using a table with a fixed height, and a table-footer element. I may be missing something, but I would like to have the footer at The bottom of the table, rather than after the last table row in the body section. Does anyone know how I can achieve this?
Re: page count
Henrik, Your .fo file is an XML document. So, you need to write an XSL that can rewrite the .fo document with some minor changes. Lets say you follow my suggestion and your first XSL generates an .fo with fo:inline placeholder=PutTotalPagesHere1234/fo:inline in those spots where you want the page total. (. . . hm that is a tough problem isn't it?) OK. You have to then render the document using FOP because FOP is the only thing that's going to know how many pages are rendered. You'll have to capture the total number of pages from FOP using that Java variable which I saw referred to in a post about 3 weeks ago (anyone?) and then rewrite the .fo using an XSL like this. Passing in the value for the number of pages as a parameter to your stylesheet. I use saxon and the command line is something like saxon -o output.fo input.fo rewrite.xsl TotalPages=24 There's a Java interface on most XSL processors that allow you to do the same thing. (Or, you could dynamically generate this XSL with the number of pages embedded) ?xml version=1.0? xsl:stylesheet version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform; xmlns:fo=http://www.w3.org/1999/XSL/Format; exclude-result-prefixes=fo xsl:output method=xml version=4.0 omit-xml-declaration=yes indent=yes/ xsl:param name=TotalPages/ xsl:template match=/ xsl:apply-templates mode=output/ /xsl:template xsl:template match=* mode=output !-- This template outputs the XML document as text -- xsl:element name={name()} xsl:for-each select=@* xsl:attribute name={name(.)} xsl:value-of select=./ /xsl:attribute /xsl:for-each xsl:if test=count(./*) gt; 0 xsl:for-each select=. xsl:apply-templates mode=output/ /xsl:for-each /xsl:if xsl:if test=string-length(.) gt; 0 xsl:if test=count(./*) = 0 xsl:value-of select=./ /xsl:if /xsl:if /xsl:element /xsl:template xsl:template match=fo:[EMAIL PROTECTED] mode=output xsl:value-of select=$TotalPages/ /xsl:template /xsl:stylesheet Chuck Paussa Henrik Holle wrote: can you please explain me how to count the page in a fo with an xslt? -Ursprungliche Nachricht- Von: Chuck Paussa [mailto:[EMAIL PROTECTED] Henrik, There is no way to do what you want in FO in one pass. What you'll need to do is generate the fo: document with some marked up place holders in it. Something like fo:inline placeholder=PutTotalPagesHere/. Then run that document through an XSLT transformation that adds up the total number of pages and replaces those special blocks with the information you want. (You'll see this technique referred to in the archives as Making a second pass over the document.) You can then use FOP to generate the output you want. Chuck Henrik Holle wrote: I have various page-sequences in my document: fo:page-sequence master-reference=NameOfMasterReference initial-page-number=1 but at the end of the document i need to count the whole pages of all page-sequences. !fo:page-number-citation ref-id = lastBlock/! does not work! -Ursprungliche Nachricht- Von: Ian Taylor [mailto:[EMAIL PROTECTED] I put this in my xsl:region-after fo:block font-size=9pt line-height=11pt text-align=end Page no: fo:page-number/ of fo:page-number-citation ref-id = lastBlock/ /fo:block where the last block in the document looks like this fo:block id = lastBlock/ Ian At 12:54 PM 4/24/2002 +0200, you wrote: Hello, I want to write something like page x of y where y is the number of pages in my document. x is generated by fo:page-number/ but how do I get y?? Harald
Re: AW: page count
Henrik, There is no way to do what you want in FO in one pass. What you'll need to do is generate the fo: document with some marked up place holders in it. Something like fo:block placeholder=PutTotalPagesHere/. Then run that document through an XSLT transformation that adds up the total number of pages and replaces those special blocks with the information you want. (You'll see this technique referred to in the archives as Making a second pass over the document.) You can then use FOP to generate the output you want. Chuck Henrik Holle wrote: I have various page-sequences in my document: fo:page-sequence master-reference=NameOfMasterReference initial-page-number=1 but at the end of the document i need to count the whole pages of all page-sequences. !fo:page-number-citation ref-id = lastBlock/! does not work! -Ursprungliche Nachricht- Von: Ian Taylor [mailto:[EMAIL PROTECTED] Betreff: Re: page count I put this in my xsl:region-after fo:block font-size=9pt line-height=11pt text-align=end Page no: fo:page-number/ of fo:page-number-citation ref-id = lastBlock/ /fo:block where the last block in the document looks like this fo:block id = lastBlock/ Ian At 12:54 PM 4/24/2002 +0200, you wrote: Hello, I want to write something like page x of y where y is the number of pages in my document. x is generated by fo:page-number/ but how do I get y?? Harald
Re: AW: Again: keep-together
Frank, OK, that makes sense. You want to have a headline and then sanking columns underneath, like in a newspaper. Headline Goes here This is the after the information headline that goes balanced. New headline here This is the after the information headline that goes balanced. I tried a whole bunch of stuff using the column-count attribute of region-body (which is the only way I know to create snaking columns.) Region-body is the only element with a column-count attribute (right?) And I couldn't get it to work. The basic idea would be to wrap two blocks in a block or block-container with a span=all fo:block-container height=15mm width=190mm top=0mm left=0mm position=absolute border=solid 1px pink span=all fo:block span=all Here's a headline #1 that should cross all the way across the page /fo:block fo:block span=none Now is the time for all good men to come to the aid of their country. Now is the time for all good men to come to the aid of their country. Now is the time for all good men to come to the aid of their country. Now is the time for all good men to come to the aid of their country. Now is the time for all good men to come to the aid of their country. Now is the time for all good men to come to the aid of their country. /fo:block /fo:block-container But, that doesn't work. The inner blocks are not aware of the columns in the region containing them. There have been a number of problems like this that I have not found an automated way to address and so have been forced to pre-calculate the page layout of each page and then absolutely position the contents on the page. For fo: processed documents, that looks like the only way to go for now unless someone else can chime in with a solution I haven't seen yet. Chuck Nestel, Frank ISC 6 wrote: Hello Chuck, thank you for replying. Unfortunately I failed to express myself clearly. Maybe since there are different problems playing together in that case. My point is that we do not see how to proceed by using tables for getting the two column formatting that our customer would have liked: We have those two column stuff alternating with one column parts. The two column parts consist of fairly complex (ie. nested) tables of vary varying length. The tables have to be splitted so that the left and right column are as balanced as possible, i.e. their length are as matching as possible. Counting lines and splitting after a half does not help. Beside being rather involved, since the lines are tables and pictures themselves and do not have constant height. The only way we have found to do at least a rough approximation of equally long columns with fop was to use the two columned layout and NOT a two columned table. Are wrong? Thanks again, Frank -Ursprüngliche Nachricht- Von: Chuck Paussa [mailto:[EMAIL PROTECTED] Gesendet am: Donnerstag, 18. April 2002 19:12 An: [EMAIL PROTECTED] Betreff: Re: Again: keep-together Frank, H I'm not exactly sure what you're trying for but, here's some suggestions: Use fo:table-cell number-columns-spanned=2 for the cell that has the 1 column header Use the fo:region-before fo:static-content area to hold what would look like the regular table header that is printed on each page and then break up each of the tables with those 1 column headers into separate tables with the one column header on the fo:table-header area (That way, if the table happens to break across a page boundary, the table header is repeated on the next page.) Chuck Paussa Nestel, Frank ISC 6 wrote: I know you all work hard. But just to express priority. We are currently stuck with a problem we cannot see how to cope without working keep properties. Or can anybody give me some help on how to achive below layout with fop. 1.one-column header 2.two-column table two-column table column1 column2 1.one-column header 2.two-column table two-column table column1 column2 1.one-column header 2.two-column table two-column table column1 column2 ... above pattern repeats very often... ... tables of varying length with very variable height of single rows ... We are using the two columns to get the variable length table no. 2 balanced between left and right side (which BTW does not work to well, the left hand side gets way to long). I do not see how to achieve this effect with a table, since I have absolute no means to measure the where to break the table into into two parts. We have long headers over the tables and those header have to kept close to their table. I know how to do it with TeX, but this ain't help :-) But its funny to run in this kind of problem over 20 years after TeX was programmed. Best regards, Frank Nestel -Ursprüngliche Nachricht- Von: J.Pietschmann [mailto
Re: How to get table to flow from first page squence to the next page sequence?
Kilmer, Erich wrote: I am trying to design an article using FOP and could use some help in its layout. The document in an invoice. The first page has a large header and footer with various invoice data. In the body or content section of the first page I want to have a table that contains line item data in each row. Because the first page has used up so much space in its header and footer there is only room for about 2-3 rows of line item data. On subsequent pages I would like to carryover the line item table. How can I get the line item table flow to start on the first page and then continue on subsequent pages? Thanks, Erich Kilmer Here's a working example (trimmed down of course) Chuck fo:root xmlns:fo=http://www.w3.org/1999/XSL/Format; fo:layout-master-set fo:simple-page-master master-name=page-first page-height=280mm page-width=215mm margin-top=13mm margin-bottom=13mm margin-left=13mm margin-right=13mm fo:region-body margin-top=51mm margin-bottom=0mm margin-left=0in margin-right=0in/ fo:region-before extent=51mm region-name=header-first/ fo:region-after extent=0mm region-name=footer-first/ /fo:simple-page-master fo:simple-page-master master-name=page-rest page-height=280mm page-width=215mm margin-top=13mm margin-bottom=13mm margin-left=13mm margin-right=13mm fo:region-body margin-top=21mm margin-bottom=0mm margin-left=0in margin-right=0in/ fo:region-before extent=21mm region-name=header-rest/ fo:region-after extent=0mm region-name=footer-rest/ /fo:simple-page-master fo:page-sequence-master master-name=master-sequence fo:repeatable-page-master-alternatives fo:conditional-page-master-reference page-position=first master-name=page-first/ fo:conditional-page-master-reference page-position=rest master-name=page-rest/ fo:conditional-page-master-reference master-name=page-rest/ /fo:repeatable-page-master-alternatives /fo:page-sequence-master /fo:layout-master-set fo:page-sequence master-name=master-sequence fo:static-content flow-name=header-first fo:block . . . Place first page header content here /fo:block /fo:static-content fo:static-content flow-name=header-rest !-- This is the header for the rest of the pages -- fo:block text-align=end font-size=10pt font-family=serif line-height=14pt Invoice - GSJHGSJ-0943028392-JKK pg. fo:page-number/ of fo:page-number-citation ref-id=terminator/ /fo:block /fo:static-content fo:static-content flow-name=footer-first/ fo:static-content flow-name=footer-rest/ fo:flow flow-name=xsl-region-body fo:table font-family=Helvetica font-size=7pt font-weight=normal fo:table-column column-width=18mm column-number=1/ fo:table-column column-width=13mm column-number=2/ fo:table-column column-width=20mm column-number=3/ etc. fo:table-header fo:table-row fo:table-cell display-align=after column-number=1 border-bottom-style=solid border-bottom-width=thin fo:block text-align=start fo:inline DATE /fo:inline /fo:block /fo:table-cell fo:table-cell display-align=after column-number=2 border-bottom-style=solid border-bottom-width=thin fo:block text-align=start fo:inline ORIGIN /fo:inline /fo:block /fo:table-cell etc. /fo:table-row /fo:table-header fo:table-body fo:table-row fo:table-cell border-bottom-width=0mm column-number=1 fo:block text-align=start fo:inline01-Mar-2000/fo:inline /fo:block /fo:table-cell etc. /fo:table-row /fo:table-body /fo:table /fo:flow /fo:page-sequence /fo:root
Re: spna=all didn't work for fo:cell
Argyn, fo:table-row fo:table-cell number-columns-spanned=3fo:block margin-left=2cmfo:inline font-weight=boldCOMMENTS: /fo:inlinexsl:value-of select=COMPONENT_ID//fo:block/fo:table-cell /fo:table-row Where number-columns-spanned=3 3 or 4 or 5 or how ever many columns are in your table Chuck Paussa Argyn Kuketayev wrote: this didn't work either :( fo:table-row fo:table-cell fo:block span=all margin-left=2cmfo:inline font-weight=boldCOMMENTS: /fo:inlinexsl:value-of select=COMPONENT_ID//fo:block/fo:table-cell /fo:table-row -Original Message- From: J.Pietschmann [mailto:[EMAIL PROTECTED] Sent: Monday, April 15, 2002 6:47 PM To: [EMAIL PROTECTED] Subject: Re: spna=all didn't work for fo:cell Argyn Kuketayev wrote: I had to put number-columns-spanned=100 instead of span=all in fo:column element, because the latter didn't work. is it a bug? From the spec at http://www.w3.org/TR/xsl/slice7.html#span span=all: Specifies if a block-level object should be placed in the current column or should span all columns of a multi-column region. This property is not intended to be used on table cells. J.Pietschmann
Re: Absolute positioning?
Patrick, First. Don't cross post to the dev and user list! This is a user list question and the user list is a great resource for your answers. Don't annoy the developers. Next. Try this or something like it. fo:block-container height=8mm width=190mm top=0mm left=0mm text-align=center position=absolute border=solid 1px white Chuck Chaumette, Patrick wrote: Hello Jerome, do you put the position attribute on a block-container or a block ? In fact I would like to be able to put a block in the bottom of a static xsl-region-before so that it glues with the start of the xsl-region-body. I thought of using a block-container with absolute-position=fixed bottom=0cm and thus get my block at the bottom of the xsl-region-before and fitting right above the beginning of the region-body. The body contains a table whose header should be tight to the bottom of a table in the region-before. Someone has a solution for this with FOP ? Thanks, greetings, Patrick -Ursprüngliche Nachricht- Von: Jerome Siour [mailto:[EMAIL PROTECTED] Gesendet: Dienstag, 16. April 2002 16:46 Cc: Esteban Gonzalez Betreff: RE: Absolute positioning? [INFO]: FOP 0.20.3 fo:block-container absolute-position=fixed top=240mm left=100mm FOP web site indicates that this attribute (absolute-position) is not supported (http://xml.apache.org/fop/implemented.html, but is the list up to date?) However, the position attribute seams to be allowed (for value fixed). May be should you try it... Hope this helps... Jerome.
Re: Absolute positioning?
Patrick, The block container size needs to be big enough to fit the contents. Any contents that don't fit in the height and width get cut off. Make the height 24mm. The border attribute needs all 3 components, solid 1px black I'm not sure if bottom is implemented. You can calculate the top by using (region-before-height - block-container-height) I haven't gotten to the position elements in my testing. Chuck Chaumette, Patrick wrote: Hi Chuck, I tried like below your tipp but did do nothing. It only shows the first Test on the top of the page. Doesnt bottom refer to the distance between the bottom of the xsl-region and the bottom of the block-container ? Any ideas ? Greetings, Patrick fo:static-content flow-name=xsl-region-before fo:block-container height=8mm width=190mm bottom=0mm left=0mm text-align=center position=absolute border=solid 1px white fo:block border=solid Test /fo:block fo:block border=solidTest2 /fo:block fo:block border=solidTest3 /fo:block /fo:block-container /fo:static-content Dipl. Inform. Patrick Chaumette T-Systems ITS GmbH -Ursprüngliche Nachricht- Von: Chuck Paussa [mailto:[EMAIL PROTECTED] Gesendet: Dienstag, 16. April 2002 18:11 An: [EMAIL PROTECTED] Betreff: Re: Absolute positioning? Patrick, Try this or something like it. fo:block-container height=8mm width=190mm top=0mm left=0mm text-align=center position=absolute border=solid 1px white Chuck Chaumette, Patrick wrote: Hello Jerome, do you put the position attribute on a block-container or a block ? In fact I would like to be able to put a block in the bottom of a static xsl-region-before so that it glues with the start of the xsl-region-body. I thought of using a block-container with absolute-position=fixed bottom=0cm and thus get my block at the bottom of the xsl-region-before and fitting right above the beginning of the region-body. The body contains a table whose header should be tight to the bottom of a table in the region-before. Someone has a solution for this with FOP ? Patrick -Ursprüngliche Nachricht- Von: Jerome Siour [mailto:[EMAIL PROTECTED] Gesendet: Dienstag, 16. April 2002 16:46 Cc: Esteban Gonzalez Betreff: RE: Absolute positioning? [INFO]: FOP 0.20.3 fo:block-container absolute-position=fixed top=240mm left=100mm FOP web site indicates that this attribute (absolute-position) is not supported (http://xml.apache.org/fop/implemented.html, but is the list up to date?) However, the position attribute seams to be allowed (for value fixed). May be should you try it... Hope this helps... Jerome.
Re: Absolute positioning?
Patrick, Sounds good to me. Try it and see if it works. (Then write to the list to tell us if it does.) The bottom attribute is definately part of the spec. Chuck Chaumette, Patrick wrote: Hi Chuck, sure I can set the top attribute, but then I will have to take care that the table in the block container will have to fit 100% with the start of the table of the xsl-region-body. I hoped with using bottom I was always sure to get the bottom of the last block element in xsl-region-before attached correctly to the first block of xsl-region-body. What do you think ? -Ursprüngliche Nachricht- Von: Chuck Paussa [mailto:[EMAIL PROTECTED] Gesendet: Dienstag, 16. April 2002 18:38 An: [EMAIL PROTECTED] Betreff: Re: Absolute positioning? Patrick, The block container size needs to be big enough to fit the contents. Any contents that don't fit in the height and width get cut off. Make the height 24mm. The border attribute needs all 3 components, solid 1px black I'm not sure if bottom is implemented. You can calculate the top by using (region-before-height - block-container-height) I haven't gotten to the position elements in my testing. Chuck Chaumette, Patrick wrote: Hi Chuck, I tried like below your tipp but did do nothing. It only shows the first Test on the top of the page. Doesnt bottom refer to the distance between the bottom of the xsl-region and the bottom of the block-container ? Any ideas ? Greetings, Patrick fo:static-content flow-name=xsl-region-before fo:block-container height=8mm width=190mm bottom=0mm left=0mm text-align=center position=absolute border=solid 1px white fo:block border=solid Test /fo:block fo:block border=solidTest2 /fo:block fo:block border=solidTest3 /fo:block /fo:block-container /fo:static-content Dipl. Inform. Patrick Chaumette T-Systems ITS GmbH -Ursprüngliche Nachricht- Von: Chuck Paussa [mailto:[EMAIL PROTECTED] Gesendet: Dienstag, 16. April 2002 18:11 An: [EMAIL PROTECTED] Betreff: Re: Absolute positioning? Patrick, Try this or something like it. fo:block-container height=8mm width=190mm top=0mm left=0mm text-align=center position=absolute border=solid 1px white Chuck Chaumette, Patrick wrote: Hello Jerome, do you put the position attribute on a block-container or a block ? In fact I would like to be able to put a block in the bottom of a static xsl-region-before so that it glues with the start of the xsl-region-body. I thought of using a block-container with absolute-position=fixed bottom=0cm and thus get my block at the bottom of the xsl-region-before and fitting right above the beginning of the region-body. The body contains a table whose header should be tight to the bottom of a table in the region-before. Someone has a solution for this with FOP ? Patrick -Ursprüngliche Nachricht- Von: Jerome Siour [mailto:[EMAIL PROTECTED] Gesendet: Dienstag, 16. April 2002 16:46 Cc: Esteban Gonzalez Betreff: RE: Absolute positioning? [INFO]: FOP 0.20.3 fo:block-container absolute-position=fixed top=240mm left=100mm FOP web site indicates that this attribute (absolute-position) is not supported (http://xml.apache.org/fop/implemented.html, but is the list up to date?) However, the position attribute seams to be allowed (for value fixed). May be should you try it... Hope this helps... Jerome.
Re: column problem
Stefan, use fo:block span=all Chuck Paussa Stefan Arn wrote: hi to all The PDF i want to create have 2 columns and a title over the columns(both in region-body).Just a Header and after that a text in 2 columns.. In my layout-master-set I defined my region-body like this: fo:region-body margin-top=6cm margin-bottom=35mm margin-left=2.5cm margin-right=2.5cm column-count=2 column-gap=1in/ Now i have my columns but what must I do, that the title isn't in the column? thanks a lot
Re: Variables
Peter, Set the variable at the top of the stylesheet before any of your templates are defined. This makes the variable global. Chuck Paussa Norr, Peter wrote: What is the best way to set variables in stylesheets? For example, instead of constantly specifying the color for fo:block with a hex value, I would like to set a variable once and then reference it in all included/imported stylesheets. i.e. fo:block color={$myfavoritecolor} / -- This message is intended only for the personal and confidential use of the designated recipient(s) named above. If you are not the intended recipient of this message you are hereby notified that any review, dissemination, distribution or copying of this message is strictly prohibited. This communication is for information purposes only and should not be regarded as an offer to sell or as a solicitation of an offer to buy any financial product, an official confirmation of any transaction, or as an official statement of Lehman Brothers. Email transmission cannot be guaranteed to be secure or error-free. Therefore, we do not represent that this information is complete or accurate and it should not be relied upon as such. All information is subject to change without notice.
Re: New Colors in FOP ...
Jose, The colors available to FOP should be the following pre-defined colors plus any color on the RGB format #00 through #FF aliceblue, antiquewhite, aqua, aquamarine, azure, beige, bisque, black, blanchedalmond, blue, blueviolet, brown, burlywood, cadetblue, chartreuse, chocolate, coral, cornflowerblue, cornsilk, crimson, cyan, darkblue, darkcyan, darkgoldenrod, darkgray, darkgreen, darkgrey, darkkhaki, darkmagenta, darkolivegreen, darkorange, darkorchid, darkred, darksalmon, darkseagreen, darkslateblue, darkslategray, darkslategrey, darkturquoise, darkviolet, deeppink, deepskyblue, dimgray, dimgrey, dodgerblue, firebrick, floralwhite, forestgreen, fuchsia, gainsboro, lightpink, lightsalmon, lightseagreen, lightskyblue, lightslategray, lightslategrey, lightsteelblue, lightyellow, lime, limegreen, linen, magenta, maroon, mediumaquamarine, mediumblue, mediumorchid, mediumpurple, mediumseagreen, mediumslateblue, mediumspringgreen, mediumturquoise, mediumvioletred, midnightblue, mintcream, mistyrose, moccasin, navajowhite, navy, oldlace, olive, olivedrab, orange, orangered, orchid, palegoldenrod, palegreen, paleturquoise, palevioletred, papayawhip, peachpuff, peru, pink, plum, powderblue, purple, red, rosybrown, royalblue, saddlebrown, salmon, ghostwhite, gold, goldenrod, gray, grey, green, greenyellow, honeydew, hotpink, indianred, indigo, ivory, khaki, lavender, lavenderblush, lawngreen, lemonchiffon, lightblue, lightcoral, lightcyan, lightgoldenrodyellow, lightgray, lightgreen, lightgrey, sandybrown, seagreen, seashell, sienna, silver, skyblue, slateblue, slategray, slategrey, snow, springgreen, steelblue, tan, teal, thistle, tomato, turquoise, violet, wheat, white, whitesmoke, yellow, yellowgreen Chuck Jose Hernandez wrote: Hello ... Where I can find all the list color that I can use with FOP ? and Can I create more definition colors ? Thanks //jose.alberto.hernandez.maldonado System Integrator Engineer. Algorithmics Mexico. Tel. 5520-4293 Fax. 5520-4292 e-mail: [EMAIL PROTECTED] [EMAIL PROTECTED]
Re: Problem with and caracters
Martin, The capital Y with a diacresis is either #x0178; or #0178; The euro is either #20AC; or #x20AC; You will also need to include a font capable of displaying those characters You can find a list of all of the available characters here http://www.unicode.org/charts/ With the list you are looking for here http://www.unicode.org/charts/PDF/U0100.pdf and here http://www.unicode.org/charts/PDF/U20A0.pdf Chuck Paussa MARTIN Franck wrote: Does anyone know a way to render using FOP? I think the fop developpers have forgotten about this caracter because , , , are implemented and are correctly rendered... I'm having a problem to get the symbol from an http request and print it in a text file. Oddly enough it prints out ? instead. Any suggestion is welcome very much!! Franck
Re: Two columns
Alex, You need to include a column-count in your fo:region-body like this: fo:root fo:layout-master-set fo:simple-page-master master-name =page-first page-height =8.5in page-width =11in fo:region-body margin-top =5cm margin-bottom=.5in margin-left =.5in margin-right =.5in column-count =3/ fo:region-before extent=6cm/ /fo:simple-page-master /fo:layout-master-set . . . Chuck Paussa alex wrote: Hi folks, I haven't seen an example for this but is it possible to have one or more blocks in which text flows into the next column, as in a newspaper for example. I am trying to do a two column A4 newsletter and don't want to worry about inserting column breaks Alex Mc
Re: font-family and font names list
Oleg, You are right. The CSS method of defining font family lists is not supported by FOP (Mainly because they haven't figured out a good way to parse the list.) You can only say font-family=Arial or font-family=TimesNewRoman not both. Chuck Paussa Oleg Tkachenko wrote: Hello ! Yes, I do define fonts in userconfig.xml, the problem is in using list of font names in font-family trait, like this one: font-family=Arial TimesNewRoman, it seems that doesn't work. Togan Muftuoglu wrote: * Oleg Tkachenko; [EMAIL PROTECTED] on 01 Apr, 2002 wrote: Wayne Elliott wrote: [ERROR]: unknown font sans-serif, Arial, Helvetica, Geneva,italic,normal so defaulted font to any then try ... font-family= sans-serif no error, it works. Well, it seems to me Mr. J.Pietschmann is right, fop gets it as string so font list is unsupported feature. Sorry I may have missed the thread but if you use a onfiguration file and define the fonts and their names in it you can use these fonts, currently I am using truetype fonts by this method here is -- Togan Muftuoglu snipped from userconfig.xml !-- Add fonts here -- font metrics-file=ttfarial.xml kerning=yes embed-file=arial.ttf font-triplet name=Arial style=normal weight=normal/ font-triplet name=ArialMT style=normal weight=normal/ /font font metrics-file=ttfarialbd.xml kerning=yes embed-file=arialbd.ttf font-triplet name=Arial style=normal weight=bold/ font-triplet name=ArialMT style=normal weight=bold/ /font font metrics-file=ttfariali.xml kerning=yes embed-file=ariali.ttf font-triplet name=Arial style=italic weight=normal/ font-triplet name=ArialMT style=italic weight=normal/ /font font metrics-file=ttfarialbi.xml kerning=yes embed-file=arialbi.ttf font-triplet name=Arial style=italic weight=bold/ font-triplet name=ArialMT style=italic weight=bold/ /font font metrics-file=times.xml kerning=yes embed-file=times.ttf font-triplet name=TimesNewRoman style=normal weight=normal/ font-triplet name=Times Roman style=normal weight=normal/ /font font metrics-file=timesi.xml kerning=yes embed-file=timesi.ttf font-triplet name=TimesNewRoman style=italic weight=normal/ font-triplet name=Times Roman style=italic weight=normal/ /font font metrics-file=timesbd.xml kerning=yes embed-file=timesbd.ttf font-triplet name=TimesNewRoman style=normal weight=bold/ font-triplet name=Times Roman style=normal weight=bold/ /font font metrics-file=timesbi.xml kerning=yes embed-file=timesbi.ttf font-triplet name=TimesNewRoman style=italic weight=bold/ font-triplet name=Times Roman style=italic weight=bold/ /font /configuration
Re: Question for FOP
Jenny, 1. To convert an XML to PDF, you'll need a properly coded XSL document. (For instance, see if you can run the glossary example in ../examples/markers command line = fop -xsl glossary.xsl -xml glossary.xml -pdf glossary.pdf 2. Display the results in a web page. Look at the instructions in http://xml.apache.org/fop/embedding.html 3. Actually pulling it off. You'll need to study some XSL tutorials like the one at http://www.arbortext.com/xsl/ FO tutorial like the one at http://www.renderx.com/tutorial.html Chuck Cai, Jenny (US - Dallas) wrote: Hi, I just successfully run the examples (simple.fo) provided in 'fop-0.20.3-bin.tar.gz' file under fop-0.20.3\docs\examples\fo subdirectory in the command prompt and I got a pdf file successfully . I still have the following question: 1. How can I view the source code for this example? 2. I also looked over all the rest of the folders included in 'fop-0.20.3' and there are a lot other folders like design, html-docs(some .html files in it), xml-docs(some xml files in it), etc. What are all those files used for? 3. Actually what I want to do is: convert a XML file to PDF file and display this PDF file on the web page. How to do this? I am new to this and really like to have your advices and help. So if you could provide further information, I would appreciate it very much. Jenny This message (including any attachments) contains confidential information intended for a specific individual and purpose, and is protected by law. If you are not the intended recipient, you should delete this message. Any disclosure, copying, or distribution of this message, or the taking of any action based on it, is strictly prohibited.
Re: AW: feature and limitation lists
Here's a DTD segregated by FOP imlemented and non-implemented features. The implemented and non-implemented values have not been segregated. Chuck Paussa Fries, Markus, fiscus GmbH, Bonn wrote: On 2002.03.21 09:47 Fries, Markus, fiscus GmbH, Bonn wrote: Hi, a lot of questions on this list are caused by properties which are not implemented. Often there are workarounds though. I think it would make sense to put some real effort into http://xml.apache.org/fop/limitations.html and http://xml.apache.org/fop/implemented.html. Or maybe there is such a collection already of which I don't know? Regards, Markus Fries Hi, If you have any suggestions about how to do this easily then share your ideas with us. Do you have some volunteers in mind to put the real effort into getting this done? Hi, I can think of one volunteer so far :). I have to do some documentation on that stuff for my project anyway and if my supervisor does not mind I can share that. Jens: I've suggested (or asked) to create a special fop.dtd (not a fo.dtd). This wouldn't regard all limitation and no workarounds, but it would be a very good tool for imlementing applications using FOP. ... A fop.dtd will answer all these question like: Feature XYZ is not working, is it a bug in my FO document or a missing FOP feature. Maybe workarounds can be mentioned in the fop.dtd, too. Since fo.dtd exists, it wouldn't be too much work to add these comments. Yes, I think this would be very helpful. But it has one drawback though. You realize only after implementing that s.th. doesn't work and expensive rework is necessary. Anyway the fop.dtd sounds like a very good start. When it gets running we can think of rearranging the collected information in addiditional documentation. What do you think? Best regards Markus Fries attachment: fop4d.zip
Re: feature and limitation lists
Here's an FOP specific xsd. I sent the segregated DTD in a previous response on this same thread. It's a pain to make a usable XSD from a DTD because the conversion tools tend to explode everything out and you get enormous repeating elements. Anyway. Here it is for what it's worth. Chuck Paussa MAISONNY Benoit wrote: Say we have an FO schema (possibly converted from that fo.dtd) and from that we remove what FOP doesn't do yet. Then we can easily compare both schemas with XSLT and generate a nice report. (I would volunteer to try and write that XSLT/report if people think it can be useful). Then we can add comments or annotations to tell about workarounds and about what is implemented BUT still is not working as expected. However, I suppose it would be a lot of work to remove unimplemented things from fo.dtd or fo.xsd. What do you think? Benoit -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Thursday, March 21, 2002 1:33 PM To: [EMAIL PROTECTED] Subject: RE: feature and limitation lists Hello, Markus wrote: If you have any suggestions about how to do this easily then share your ideas with us. I've suggested (or asked) to create a special fop.dtd (not a fo.dtd). This wouldn't regard all limitation and no workarounds, but it would be a very good tool for imlementing applications using FOP. E.g.: fo.dtd (I know that there's no official fo.dtd, I took the one created by Nikolai Grigoriev [EMAIL PROTECTED]): -8X8X--- !ENTITY % area-properties clip CDATA #IMPLIED [..] [ ... block-properties is an entity based (indirectly) on area-properties ... ] !ELEMENT fo:block (#PCDATA | fo:initial-property-set | %basic-inlines; | %basic-blocks; | %out-of-lines; | %wrappers;)* !ATTLIST fo:block %block-properties; -8X8X--- FOP.dtd: -8X8X--- !ENTITY % area-properties !-- clip CDATA #IMPLIED not implemented by FOP yet --- [..] [ ... block-properties is an entity based (indirectly) on area-properties ... ] !ELEMENT fo:block (#PCDATA | fo:initial-property-set | %basic-inlines; | %basic-blocks; | %out-of-lines; | %wrappers;)* !ATTLIST fo:block %block-properties; -8X8X--- I don't know how FOP is implementing these features, maybe it would be easier to remove these entities and list all attributes and content elements explicit. But maybe these entities represent the internal implementation structure... A fop.dtd will answer all these question like: Feature XYZ is not working, is it a bug in my FO document or a missing FOP feature. Maybe workarounds can be mentioned in the fop.dtd, too. Since fo.dtd exists, it wouldn't be too much work to add these comments. Regards, Jens attachment: fop4da.zip
Re: table: column-width
Mathy, To do the variable number of columns, you'll have to use a range function like this fo:table xsl:variable name=numcols select=./table/@numcols/ xsl:for-each select=1 to $numcols !-- xsl 2 structure i,plemented in Saxon v7 -- xsl:for-each select=saxon:range(1, $numcols) !-- extension function -- fo:table-column column-width=10mm/ /xsl:for-each To do the column and row spanning, use number-columns-spanned and number-rows-spanned fo:table-cell border=solid silver 1px number-rows-spanned=2 display-align=after fo:table-cell border=solid black 1px number-columns-spanned=2 text-align=center Chuck Mathy V Arumugam wrote: I need a table looking like this :))) *** * TEXT*Some text * *** ** Col 2 * Col3* Col4 * Col N * *** * 0* 2*3* 4*5* *** * 6 * 7*8* 9*10 * *** The number of columns is not a fixed number. I am able to create the table but, having trouble with the column-width. The table should expand to fit the page. The total-column-number is defined in TABLE attribute. Thanks Mathy
Re: Table header.
Olivier, The quick answer is No. But there are people wanting to write an extension function to do this. What you can do is return the page number that the table sits on within the page sequence in which the table sits. So, if you can do without page numbers on your output, you can create a new page sequence for each table, set the initial-page-number = 1, and then return the page number (Code attached) Chuck Paussa Olivier Rossel wrote: Is it possible to have when you are using a table header, a variable that tells how many times this header has already been duplicated, because of page break. Si you can have a header that displays on the first page: Table important and on the second page: Table important (2) and on the third page Table important (3) ?xml version=1.0 encoding=UTF-8? fo:root xmlns:fo=http://www.w3.org/1999/XSL/Format; fo:layout-master-set fo:simple-page-master master-name=simplet page-width=200mm page-height=20mm fo:region-before extent=10mm/ fo:region-body margin-top=10mm/ /fo:simple-page-master /fo:layout-master-set fo:page-sequence master-name=simplet initial-page-number=1 fo:static-content flow-name=xsl-region-before fo:table fo:table-column column-width=3in/ fo:table-column column-width=3in/ fo:table-body fo:table-row fo:table-cell number-columns-spanned=2 fo:block Table 2: Page fo:page-number/ of fo:page-number-citation ref-id=terminator1/ /fo:block /fo:table-cell /fo:table-row fo:table-row fo:table-cell fo:blockHeader 1/fo:block /fo:table-cell fo:table-cell fo:blockHeader 2/fo:block /fo:table-cell /fo:table-row /fo:table-body /fo:table /fo:static-content fo:flow flow-name=xsl-region-body fo:table fo:table-column column-width=3in/ fo:table-column column-width=3in/ fo:table-body fo:table-row fo:table-cell fo:blockColumn 1/fo:block /fo:table-cell fo:table-cell fo:blockColumn 2/fo:block /fo:table-cell /fo:table-row fo:table-row fo:table-cell fo:blockColumn 1/fo:block /fo:table-cell fo:table-cell fo:blockColumn 2/fo:block /fo:table-cell /fo:table-row fo:table-row fo:table-cell fo:blockColumn 1/fo:block /fo:table-cell fo:table-cell fo:blockColumn 2/fo:block /fo:table-cell /fo:table-row fo:table-row fo:table-cell fo:blockColumn 1/fo:block /fo:table-cell fo:table-cell fo:blockColumn 2/fo:block /fo:table-cell /fo:table-row /fo:table-body /fo:table fo:block id=terminator1/ /fo:flow /fo:page-sequence fo:page-sequence master-name=simplet initial-page-number=1 fo:static-content flow-name=xsl-region-before fo:table fo:table-column column-width=3in/ fo:table-column column-width=3in/ fo:table-body fo:table-row fo:table-cell number-columns-spanned=2 fo:block Table 2: Page fo:page-number/ of fo:page-number-citation ref-id=terminator2/ /fo:block /fo:table-cell /fo:table-row fo:table-row fo:table-cell fo:blockHeader 1/fo:block /fo:table-cell fo:table-cell fo:blockHeader 2/fo:block /fo:table-cell /fo:table-row /fo:table-body /fo:table /fo:static-content fo:flow flow-name=xsl-region-body fo:table fo:table-column column-width=3in/ fo:table-column column-width=3in/ fo:table-body fo:table-row fo:table-cell fo:blockColumn 1/fo:block /fo:table-cell fo:table-cell fo:blockColumn 2/fo:block /fo:table-cell /fo:table-row fo:table-row fo:table-cell fo:blockColumn 1/fo:block /fo:table-cell fo:table-cell fo:blockColumn 2/fo:block /fo:table-cell /fo:table-row fo:table-row fo:table-cell fo:blockColumn 1/fo:block /fo:table-cell fo:table-cell fo:blockColumn 2/fo:block /fo:table-cell /fo:table-row fo:table-row fo:table-cell fo:blockColumn 1/fo:block /fo:table-cell fo:table-cell fo:blockColumn 2/fo:block /fo:table-cell /fo:table-row /fo:table-body /fo:table fo:block id=terminator2/ /fo:flow /fo:page-sequence /fo:root
Re: Relative position elements
Sebastien, H. Here's a piece of code which should work but, it creates an invalid PDF and generates [error] org.apache.fop.layout.BlockArea. I don't know why. You should be able to get the parent block's positions using the from-parent() function. And, I thought I'd done it successfully once. Anyone with some clues? Chuck Paussa Sebastien Foucault wrote: Thank's for that piece of advice but I'm rather looking for a solution allowing to position elements in a relative way. The problem is that I want to design absolute-positionned blocks but, because I don't know the number of times a block will be repeated and hence it's Y position, I cannot use an absolute positionning. Regards -- Sébastien Foucault Chuck Paussa [EMAIL PROTECTED] Sebastien, They are on block-container. I don't know about block but here's some code I use: fo:block-container height=4.5in width=7.2in top={$calcRemitBoxTop}mm left=0in position=absolute Chuck Paussa Sebastien Foucault wrote: Hello, Are relative position attributes implemented in fop (either on block element or on block-container element) ? If so how to make them work ? Thank's in advance -- Sébastien Foucault ?xml version=1.0 encoding=UTF-8? fo:root xmlns:fo=http://www.w3.org/1999/XSL/Format; fo:layout-master-set fo:simple-page-master master-name=simplet page-width=240mm page-height=100mm margin-top=1in margin-right=1in margin-left=1in margin-bottom=1in fo:region-before extent=1in/ fo:region-body margin-top=1in/ /fo:simple-page-master /fo:layout-master-set fo:page-sequence master-reference=simplet fo:static-content flow-name=xsl-region-before fo:blockRegion before /fo:block /fo:static-content fo:flow flow-name=xsl-region-body fo:blockRegion body Region body Region body Region body Region body Region body Region body Region body Region body Region body Region body Region body Region body Region body Region fo:block-container height=5mm width=10mm left=from-parent(left) top=from-parent(top) position=absolute fo:blockHELLO/fo:block /fo:block-container body Region body Region body Region body Region body Region body Region body Region body Region body Region body Region body Region body Region body /fo:block /fo:flow /fo:page-sequence /fo:root
Re: : XML - MS Word??
Man, this is totally off of the FOP subject but, Yes, you can create a pivot table (almost - You create an outline) in text with XSL. You have to understand how excel auto-converts properly sub-totalled rows to an outline and then to a pivot table. Walk through it a couple of times in Excel to see what';s going on 1. Figure out the output line by line 2. Figure out the fields that will be subtotalled 3. Create subtotal lines using formulas. [ =sum(b1:b5) ] 4. Excel will import the formulas, then you push the buttons to turn it automatically into an outline. Then turn the outline into a pivot table. Chuck Paussa Savino, Matt C wrote: Do you know if this can be used to create a spreadsheet with a pivot table? I read the How To page but didn't see anything about it. thx, Matt Savino -Original Message- From: Nicola Ken Barozzi [mailto:[EMAIL PROTECTED] Sent: Monday, March 04, 2002 9:47 AM To: [EMAIL PROTECTED] Subject: Re: : XML - MS Word?? From: Carlos Araya [EMAIL PROTECTED] Michiel: Wouldn't it be easier to translate the xml to a CSV (comma separated value) file, import that into Excel and then finish up the formating? I wouldn't even bother trying the MS_HTML option See http://jakarta.apache.org/poi/ . Pure java classes that write to Office formats. Excel reader-writer is tried and tested. -- Nicola Ken Barozzi [EMAIL PROTECTED] - verba volant, scripta manent - (discussions get forgotten, just code remains) -
Re: Drawing a line at bottom of a table-row
Olivier, You were trying to match a table cell border with a fo:block border that sits in a cell Try the attached code Chuck Paussa Olivier Rossel wrote: I have a 3 cells in a row in a table. I wish to draw a line at the bottom of the row. I tried table-row border-bottom=1pt solid black but it didn't work. Is it a FO normal behaviour? If i i use fo:table-cell border-bottom=1pt solid black, it is okay. But if one of my cell is empty, the bottom-line is REALLY misplaced. Using the attribute 'empty-cells=show' at the declaration of the table makes the thing better, the line is almost at the same level with the bottom-border of the non-empty cells. Here is the code i use: fo:table-row fo:table-cell fo:block font-size=12pt space-before.optimum=12pt text-align=center border-bottom=0.5mm solid blackProject: xsl:apply-templates select=h_table/[EMAIL PROTECTED]'h1']//fo:block /fo:table-cell fo:table-cell fo:block font-size=12pt space-before.optimum=12pt text-align=center border-bottom=0.5mm solid blackAC/Series: xsl:apply-templates select=h_table/[EMAIL PROTECTED]'h2']//fo:block /fo:table-cell fo:table-cell number-columns-spanned=3 fo:block font-size=12pt space-before.optimum=12pt text-align=center border-bottom=0.5mm solid blackAC/Models: xsl:apply-templates select=h_table/[EMAIL PROTECTED]'h3']//fo:block /fo:table-cell fo:table-cell number-columns-spanned=3 border-bottom=0.5mm solid black/fo:table-cell /fo:table-row And the result can be seen at: http://www.anyware-tech.com/test.pdf Anyone ever had this problem? ?xml version=1.0 encoding=UTF-8? fo:root xmlns:fo=http://www.w3.org/1999/XSL/Format; fo:layout-master-set fo:simple-page-master master-name=simplet page-width=240mm margin-top=1in margin-right=1in margin-left=1in margin-bottom=1in fo:region-body/ /fo:simple-page-master /fo:layout-master-set fo:page-sequence master-reference=simplet fo:flow flow-name=xsl-region-body fo:block hyphenate=true language=en fo:table padding=2pt table-layout=fixed fo:table-column column-width=45mm/ fo:table-column column-width=45mm/ fo:table-column column-width=45mm/ fo:table-column column-width=45mm/ fo:table-body fo:table-row fo:table-cell fo:block font-size=12pt space-before.optimum=12pt text-align=center border-bottom=0.5mm solid blackProject: Blah Blah /fo:block /fo:table-cell fo:table-cell fo:block font-size=12pt space-before.optimum=12pt text-align=center border-bottom=0.5mm solid blackAC/Series: Blah Blah /fo:block /fo:table-cell fo:table-cell fo:block font-size=12pt space-before.optimum=12pt text-align=center border-bottom=0.5mm solid blackAC/Models: Blah Blah /fo:block /fo:table-cell fo:table-cell fo:block font-size=12pt space-before.optimum=12pt text-align=center border-bottom=0.5mm solid black white-space-collapse=false /fo:block /fo:table-cell /fo:table-row /fo:table-body /fo:table /fo:block /fo:flow /fo:page-sequence /fo:root
Re: XMLSpy - FOP
Matt, Put this line at the top of your batch file: @echo 1:[ %1 ] 2: [ %2 ] 3: [ %3 ] 4: [ %4 ] 5: [ %5 ] 6: [ %6 ] 7: [ %7 ] 8: [ %8 ] 9: [ %9 ] t.out Then look at t.out to see what XMLSpy is sending to the batch file. Then try the same sequence from the command line to figure out what's going on and tweak the batch file to make it work. (That's how I made the batch file in the first place.) This is what I get: 1:[ -q ] 2: [ -xml ] 3: [ C:\Fop-0.20.1\tmp.xml ] 4: [ -xsl ] 5: [ C:\Fop-0.20.1\pdf_master.xsl ] 6: [ -pdf ] 7: [ C:\Fop-0.20.1\Output.pdf ] 8: [ ] 9: [ ] Chuck Paussa Savino, Matt C wrote: Thanks Chuck, I see I can actually use your workaround to go straight from XML-PDF with XMLSpy. But my problem right now is I can't even get XMLSpy to run FOP on an FO file that I know works. I just get that same error every time. (Regular XSL transformation works fine by the way.) I keep thinking there's a space in my file path or something, but I can't find any. I'll let you know when I figure it out. By the way I was working on this because I wanted to get your markers example going. I finally just did it on the command line. It looks pretty cool. I'm trying to figure out if I can use it to solve my adding '(Continued)' to table headers problem or my spearately numbered sub-section problem. Matt Savino Senior Systems Analyst Quest Diagnostics Clinical Trials -Original Message- From: Chuck Paussa [mailto:[EMAIL PROTECTED] Let's see Path to FOP bat file = C:\Fop-0.20.1\fopx.bat fopx.bat file = saxon -o test.fo %3 pdf_master.xsl @java -Xms256m -Xmx256m -cp build\fop.jar;lib\batik.jar;lib\xalan-2.0.0.jar;lib\xerces-1.2 .3.jar;lib\avalon-framework-4.0.jar;lib\logkit-1.0b4.jar;lib\j imi-1.0.jar org.apache.fop.apps.Fop -c conf/userconfig.xml %1 -fo test.fo %6 %7 %8 I guess I sort of got it to work but I had to go through an intermediate .fo file and I hard coded the xsl Chuck Savino, Matt C wrote: Has anyone gotten FO transformations to work on XMLSpy w/FOP .20.2? No matter what I try I keep getting the following error: Output of external XSL converter: The filename, directory name, or volume label syntax is incorrect. thx a lot, Matt Savino Senior Systems Analyst Quest Diagnostics Clinical Trials
Re: markers
Hi Bart, I've done some playing with markers also and gotten them to work pretty well. One of the things I've noticed is that FOP complains mightily about both fo:marker must be an initial child and marker-class-name' must be unique for same parent.but, they are recoverable errors and can be ignored. Here's an XML and XSL to demonstrate the capabilities. Notice that I place a marker at the beginning and end of each marked block (That's strictly illegal! But it works) I also have placed an x in the illegal marker contents so you can see the illegal retrieval. I do that so that the functions first-including-carryover and last-ending-within-page will work. Arved did a great job of implementing markers, you just have to break the rules for now (and be prepared to unbreak the rules when FOP has a correct implementation) fop -xsl dictionary.xsl -xml dictionary.xml -pdf dictionary.pdf Chuck Bart Locanthi wrote: does fop support markers? i'm having trouble getting them to work. my input looks like ... fo:flow fo:block fo:block fo:marker marker-class-name=chapchapter one/fo:marker ... /fo:block /fo:block fo:block fo:block fo:marker marker-class-name=chapchapter two/fo:marker ... note that the markers share a common great-grandparent. the error message i get from any fop-0.20.[23] is: [ERROR]: fo:marker must be an initial child,and 'marker-class-name' must be unique for same parent. i'm following all the rules, i think, but no joy. sounds like a simple misconception on my part but i'm stumped. root blockOne/block blockTwo/block blockThr/block blockFou/block blockFiv/block blockSix/block blockSev/block blockEig/block blockNin/block blockTen/block blockEle/block blockTwe/block blockThi/block blockFor/block blockFif/block blockSex/block blockSiv/block blockEgg/block blockNon/block /root?xml version=1.0? xsl:stylesheet version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform; xmlns:fo=http://www.w3.org/1999/XSL/Format; exclude-result-prefixes=fo xsl:output method=xml version=4.0 omit-xml-declaration=yes indent=yes/ xsl:template match=/ fo:root fo:layout-master-set fo:simple-page-master master-name =page-first page-height =8.5in page-width =11in fo:region-body margin-top =5cm margin-bottom=.5in margin-left =.5in margin-right =.5in column-count =3/ fo:region-before extent=6cm/ /fo:simple-page-master /fo:layout-master-set fo:page-sequence master-name=page-first fo:static-content flow-name=xsl-region-before fo:table fo:table-column column-width=5.5in/ fo:table-column column-width=5.5in/ fo:table-body fo:table-row fo:table-cell fo:block keep-together=auto first-starting-within-page: fo:retrieve-marker retrieve-class-name=entry retrieve-boundary=page retrieve-position=first-starting-within-page/ /fo:block /fo:table-cell fo:table-cell fo:block keep-together=auto text-align=end first-including-carryover : fo:retrieve-marker retrieve-class-name=entry retrieve-boundary=page retrieve-position=first-including-carryover/ /fo:block /fo:table-cell /fo:table-row fo:table-row fo:table-cell fo:block keep-together=auto last-starting-within-page : fo:retrieve-marker retrieve-class-name=entry retrieve-boundary=page retrieve-position=last-starting-within-page/ /fo:block /fo:table-cell fo:table-cell fo:block keep-together=auto text-align=end last-ending-within-page : fo:retrieve-marker retrieve-class-name=entry retrieve-boundary=page retrieve-position=last-ending-within-page/ /fo:block /fo:table-cell /fo:table-row /fo:table-body /fo:table /fo:static-content fo:flow flow-name=xsl-region-body xsl:for-each select=/root/block xsl:variable name=this select=./ fo:blockfo:marker marker-class-name=entryxsl:value-of select=.//fo:marker xsl:value-of select=concat($this,' ')/xsl:value-of select=concat($this,' ')/xsl:value-of select=concat($this,' ')/xsl:value-of select=concat($this,' ')/xsl:value-of select=concat($this,' ')/ xsl:value-of select=concat($this,' ')/xsl:value-of select=concat($this,' ')/xsl:value-of select=concat($this,' ')/xsl:value-of select=concat($this,' ')/xsl:value-of select=concat($this,' ')/ xsl:value-of select=concat($this,' ')/xsl:value-of select=concat($this,' ')/xsl:value-of select=concat($this,' ')/xsl:value-of select=concat($this,' ')/xsl:value-of select=concat($this,' ')/ xsl:value-of select=concat($this,' ')/xsl:value-of select=concat($this,' ')/xsl:value-of select=concat($this,' ')/xsl:value-of select=concat($this,' ')/xsl:value-of
Re: Error:
Roland, The [ERROR]: message is a generic message meaning that a recoverable error occured. The recoverable errors are listed in the spec but, the most common reason is that some of the output text did not fit in the designated space. For instance, if you specify a fo:region-before extent =3mm and the text you put in that area spills out beyond 3mm, the text will be placed on the next page header (making it look funny) and FOP generates [ERROR]. The same thing occurs with table cells where a word can't wrap in the available width, etc. etc. If you examine the PDF and don't see anything wrong, you can ignore the error but, it's an indication that you should look closely at the XML data you are feeding the XSL to make sure that you don't get some surprises after you've gone into a production environment. Chuck Roland Lechner wrote: Hi there, executing FOP I get the following error message: [ERROR]: Anybody knows what this could be? Thanks in advance Roland Keine verlorenen Lotto-Quittungen, keine vergessenen Gewinne mehr! Beim WEB.DE Lottoservice: http://tippen2.web.de/?x=13
Re: font-size problem
Miya, (B (Bproperty - "line-stacking-strategy" is not implemented yet. (BUntil it is, you'll have to use line-height and calculate it. I've found (Bthat using 1/2 the maximum fon-size in mm works pretty good. So, your (Bfo:block would be (B (Bfo:block line-height="10mm"fo:inline font-size="20pt" . . . (B (BChuck (B (BMiya Chiharu wrote: (B (BI try to format the following fo document. (BSome character using big size font overlap the first line text. (BI think that fo cannot find correct line height. (BCan fop layout the following document correctly ? (B (B?xml version="1.0" encoding="UTF-8"? (Bfo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" (B (Bfo:layout-master-set (Bfo:simple-page-master (Bmaster-name="simple" (Bmargin-top="1in" (Bmargin-right="1in" (Bmargin-left="1in" (Bmargin-bottom="1in" (Bfo:region-body/ (B/fo:simple-page-master (B/fo:layout-master-set (Bfo:page-sequence master-reference="simple" (Bfo:flow flow-name="xsl-region-body" (B (Bfo:blockThis is the first line using default font. (B/fo:block (Bfo:block (Bfo:inline font-size="20pt"Big Font/fo:inline (Bfo:inline font-size="10pt"Small Font/fo:inline (Bfo:inline font-style="italic" font-size="30pt"Italic Big Font/fo:inline (B/fo:block (B (B/fo:flow/fo:page-sequence/fo:root (B- (BMiya Chiharu (B
Re: Watermarks
For watermarks etc. you can use this open-source product http://www.etymon.com/pj/index.html Chuck S. Jayaraman wrote: Hi Is it possible to have pages printed out with watermarks ? Thanx in advance Rgds Jay --- S. Jayaraman Consor AG Ottikerstr. 14 CH-8006 Zurich Switzerland email - [EMAIL PROTECTED] phone - +41 1 368 35 36 fax - +41 1 368 35 99 BITTE BEACHTEN Diese Nachricht (wie auch allfällige Anhänge dazu) beinhaltet möglicherweise vertrauliche oder gesetzlich geschützte Daten oder Informationen. Zum Empfang derselben ist (sind) ausschliesslich die genannte(n) Person(en) bestimmt. Falls Sie diese Nachricht irrtümlicherweise erreicht hat, sind Sie höflich gebeten, diese unter Ausschluss jeder Reproduktion zu zerstören und die absendende Person umgehend zu benachrichtigen. Vielen Dank für Ihre Hilfe.
Re: Dynamic Header in Page Sequence [region-before]
Sharan, You can use marker and retrieve marker. The header has to be variable depending on the contents of the page. Example follows. Retrieve marker retrieves whatever you put within the fo:marker tags. Those contents are not output on the page. Also, your code used region-start, you want region-before. You used static-content instead of fo:flow. fo:static-content flow-name=xsl-region-before fo:block font-size=16pt font-weight=bold font-family=sans-serif xsl:text Car: /xsl:text fo:retrieve-marker retrieve-class-name=car-category retrieve-boundary=page retrieve-position=first-starting-within-page/ /fo:block /fo:static-content fo:flow flow-name=xsl-region-body xsl:for-each select=/car fo:blockfo:marker marker-class-name=car-categoryxsl:value-of select=Car/@category//fo:marker xsl:value-of select=@name/ . . . /fo:block /fo:flow Chuck Sharan, Dharmendra wrote: Hi XSL FOP Developers, I want to ask if it is possible to have a dynamic Header implemented in a Page-Sequence. something like ... fo:static-content flow-name=xsl-region-start fo:block font-size=16pt font-weight=bold font-family=sans-serif xsl:text Car: /xsl:text xsl:value-of select=Car/@category/ /fo:block /fo:static-content fo:static-content flow-name=xsl-region-body !-- XSL FO code to process the xml goes here... -- !-- This body content gets page header using the xsl-region-start above -- !-- Is is possible to have a different header for this/each page -- !-- depending on the data being processed eg. let's say we have a xml having car schema -- !-- would it be possible to have the page header vary depending on the car detail being displayed ??? -- !-- (assuming each car gets displayed on its own page i.e. separate page for each car) -- /fo:static-content Assuming an XML like :- Vehicle type=4 wheel drive car category=sedan !-- Car details here... -- /car car category=sports !-- Car details here... -- /car /Vehicle Any ideas ? Is there a better way to achieve the same results ? Any helps/hints/suggestions appreciated. Thanks!, Dharmendra
Re: FOP SVG precision; how to keep thin lines precision???
Irina Grigorieva wrote: Hi, I faced a problem. I need to generate barcodes (it is not a problem) and draw it into PDF. That is, to draw several rectangles... The FO document looks like: We had the same problem and, after much playing with SVG and the example apps at http://www.renderx.com/barcodes.html we decided to purchase barcode fonts and embed those fonts in the PDF (Instructions at http://xml.apache.org/fop/fonts.html ) Barcode fonts are not expensive and the quality is excellent. Chuck
Re: Page Sequence Question
Lars, I believe you use fo:table table-omit-footer-at-break=true and then define the footer within fo:table:footer If you want to extend the footer across the whole page (So its not just a column footer) then you use fo:table-cell number-columns-spanned=the number of columns in the table Lars Karschen wrote: Hi, I've got a question concerning page-sequences. I tried to create a sequence of pages, which all have a header on top of the page and no footer. The flow content is a table. Once all information on the table is displayed, the last page should close with a footer, summarizing the table contents. The problem is, the footer should be on the last page with the last data of the table if there is still enough space left, and it shouldn't be the only region beginning a new page if possible. Is there any way to do it via page-sequences? regards, Lars Karschen
Re: Help to get started in a servlet
Chinn, Gale wrote: I am new to fop and can get it to run command line, but would like to get it to run in a servlet. I have followed the info on fop's embedding page using fop.war file in the webapps directory of Tomcat on ver 3.2 and 4, but cannot get it to work using: http://localhost:8080/fop/fop?fo=... or http://localhost:8080/fop/servlet/fop?fo=... I would just like to get a simple pdf to come back to my browser to prove a point to my group leader. Any help would be appreciated TIA, Gale Chinn Programmer/Analyst Cessna Aircraft Company Wichita, KS Gale, I dropped in the WAR, put my .fo file into /webapps and called the servlet with http://localhost:8080/fop/fop?fo=../webapps/test.fo or http://localhost:8080/fop/fop?xml=../webapps/test.xmlxsl=../webapps/test.xsl notice the ../ at the beginning of the path to the files. That's because the default root path for files in tomcat is /bin so you have to start the relative path from there. Chuck
Re: FOP Weakness
Xie, David (IPCG-NJ) wrote: Hi All, I have three questions regarding FOP. First of all, does anyone know what FOP stands for? My guess File object program. Second question is regarding the FOP performance. I notice that every time FOP runs on Jakarta Tomcat 4.0, the cpu usage is almost 100%. This is not good if we are running other applications on the same server. Anyone experiencing such problem? Do you have a solution? Does increasing heap size make any difference? My final question is regarding FOP scability. I have been doing numerous tests on FOP using Loadrunner, a simulation application that allows us to specify certain number of users and number of requests. When making large number of requests to jakarta Tomcat and FOP to generate pdfs, I kept on getting socket write error (java.net.socketException Error: connection reset by peer: socket write error). Anyone know what cause this error? On the web, it said this error is caused by browser and it's not big deal. Thanks for you help, I look forward to your expert opinion. Dave FOP = Formatting Objects Processor ; FO is an extension to the XSL standard Performance, FOP takes a lot of memory. To get 200ppm processing, I'm estimating 2GB memory on the system + memory for the database and web server. Improvements in the memory footprint are scheduled to be started not soon Hey! What do you want? memory is cheap. Scalability. If you provide it with scalable amounts of memory, the performance is fairly linear.
Re: XML : FOP
EXT-Reddy, Swathi A wrote: Hi, I am new to XML FOP. I saw your message about Re: How to avoid using too much memory to create relatively large PDF file. I created an XML file with PAGE tags. In my XSL file, I am using the following code to do page breaks - xsl:apply-templates select=page/ fo:page-sequence master-name=master-sequence fo:static-content flow-name=header . I have a document that will generate 3000 pages. Is this conversion to PDF is feasible using FOP? Thanks. Swathi Reddy (206)544-8542 [EMAIL PROTECTED] Swathi, That's what you should do if you already exactly know the contents of each page (such as your standard main-frame reports where text fields are truncated and/or the page breaks are pre-calculated when data wraps.) If there is a lot of free-form text and you want FOP to deal with text placement, then producing sections of pages that are less than 50 pages should be fine. (Also, you should post your questions to the list rather than sending them directly to me.) Chuck
The text renderer errors out when it encounters a positioned block-container
This isn't a show stopper in any way since I can render text without FOP. I added a positioned block-container to my .FO. Now the text renderer bombs on that page. Is there any way to include a positioned block-container that does not crash the text renderer? Chuck value: FOP 0.20.2 OS Windows 2000 fo:block-container height=4.5in width=7.2in top=6in left=0in position=absolute [INFO]: rendering areas to TEXT [INFO]: [1] [INFO]: [2] [INFO]: [3] [ERROR]: null org.apache.fop.apps.FOPException at org.apache.fop.apps.Driver.render(Driver.java:464) at org.apache.fop.apps.CommandLineStarter.run(CommandLineStarter.java:72) at org.apache.fop.apps.Fop.main(Fop.java:19) - java.lang.ArrayIndexOutOfBoundsException at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:965) at org.apache.fop.apps.Driver.render(Driver.java:459) at org.apache.fop.apps.CommandLineStarter.run(CommandLineStarter.java:72) at org.apache.fop.apps.Fop.main(Fop.java:19) -