Re: Is there a decent way of using different PDF fonts for different parts of a Forrest site?
FWIW, the $path has just what I hoped in it and works well. Thanks! Karl On Tue, Jan 31, 2012 at 9:23 PM, Karl Wright daddy...@gmail.com wrote: Then, inside your own document-to-fo.xsl you should have access to a path parameter. You may add an additional condition to the font of interest (e.g. rootFontFamily) that uses XSL string functions against your $path parameter. I've set things up so that my document path includes the language code (e.g. 'en_US') as the first part of the path under src/documentation/content/xdocs. For example, src/documentation/content/xdocs/en_US/mydocument.xml would be the starting point. The question is what the $path variable will contain - if it's just en_US/mydocument.xml my job is easy. If it could be en_US\mydocument.xml on Windows and en_US/mydocument.xml on Unix it's a bit harder. But if it is the absolute path xsl expressions aren't going to help me and I'd better find a better solution. What I'd do (and this might even make a decent general patch) is look for the property with the language specifier first. For example, instead of looking for output.pdf.fontFamily.sansSerif first, I'd look for output.pdf.fontFamily.sansSerif.en_US first, and only look for the other if that property is not found. So, what can I expect to see for the $path parameter? Thanks again for your help! Karl
Re: Is there a decent way of using different PDF fonts for different parts of a Forrest site?
On Wed, Feb 1, 2012 at 8:02 AM, Karl Wright daddy...@gmail.com wrote: FWIW, the $path has just what I hoped in it and works well. My apologies Karl, I got busy last night and didn't have a chance to get back to this:( I haven't confirmed but path should be the request path (of the URL) - so the same on both systems. --tim Thanks! Karl On Tue, Jan 31, 2012 at 9:23 PM, Karl Wright daddy...@gmail.com wrote: Then, inside your own document-to-fo.xsl you should have access to a path parameter. You may add an additional condition to the font of interest (e.g. rootFontFamily) that uses XSL string functions against your $path parameter. I've set things up so that my document path includes the language code (e.g. 'en_US') as the first part of the path under src/documentation/content/xdocs. For example, src/documentation/content/xdocs/en_US/mydocument.xml would be the starting point. The question is what the $path variable will contain - if it's just en_US/mydocument.xml my job is easy. If it could be en_US\mydocument.xml on Windows and en_US/mydocument.xml on Unix it's a bit harder. But if it is the absolute path xsl expressions aren't going to help me and I'd better find a better solution. What I'd do (and this might even make a decent general patch) is look for the property with the language specifier first. For example, instead of looking for output.pdf.fontFamily.sansSerif first, I'd look for output.pdf.fontFamily.sansSerif.en_US first, and only look for the other if that property is not found. So, what can I expect to see for the $path parameter? Thanks again for your help! Karl
Re: Is there a decent way of using different PDF fonts for different parts of a Forrest site?
For the archives, it looks like this is the commit [ http://svn.apache.org/viewvc?view=revisionrevision=1239111 ]. If this is a common need, perhaps a candidate to just get rolled into Forrest itself, I dunno. FWIW, I'm pretty sure the output.xmap is unnecessary and you could have used a project-specific locationmap to point to your custom document-to-fo.xsl but maybe I'm missing something... --tim On Wed, Feb 1, 2012 at 8:02 AM, Karl Wright daddy...@gmail.com wrote: FWIW, the $path has just what I hoped in it and works well. Thanks! Karl On Tue, Jan 31, 2012 at 9:23 PM, Karl Wright daddy...@gmail.com wrote: Then, inside your own document-to-fo.xsl you should have access to a path parameter. You may add an additional condition to the font of interest (e.g. rootFontFamily) that uses XSL string functions against your $path parameter. I've set things up so that my document path includes the language code (e.g. 'en_US') as the first part of the path under src/documentation/content/xdocs. For example, src/documentation/content/xdocs/en_US/mydocument.xml would be the starting point. The question is what the $path variable will contain - if it's just en_US/mydocument.xml my job is easy. If it could be en_US\mydocument.xml on Windows and en_US/mydocument.xml on Unix it's a bit harder. But if it is the absolute path xsl expressions aren't going to help me and I'd better find a better solution. What I'd do (and this might even make a decent general patch) is look for the property with the language specifier first. For example, instead of looking for output.pdf.fontFamily.sansSerif first, I'd look for output.pdf.fontFamily.sansSerif.en_US first, and only look for the other if that property is not found. So, what can I expect to see for the $path parameter? Thanks again for your help! Karl
Re: Is there a decent way of using different PDF fonts for different parts of a Forrest site?
Tim Williams wrote: For the archives, it looks like this is the commit [ http://svn.apache.org/viewvc?view=revisionrevision=1239111 ]. If this is a common need, perhaps a candidate to just get rolled into Forrest itself, I dunno. For the document-to-fo.xsl part. FWIW, I'm pretty sure the output.xmap is unnecessary and you could have used a project-specific locationmap to point to your custom document-to-fo.xsl but maybe I'm missing something... Yes i reckon that is correct. -David --tim On Wed, Feb 1, 2012 at 8:02 AM, Karl Wright daddy...@gmail.com wrote: FWIW, the $path has just what I hoped in it and works well. Thanks! Karl On Tue, Jan 31, 2012 at 9:23 PM, Karl Wright daddy...@gmail.com wrote: Then, inside your own document-to-fo.xsl you should have access to a path parameter. You may add an additional condition to the font of interest (e.g. rootFontFamily) that uses XSL string functions against your $path parameter. I've set things up so that my document path includes the language code (e.g. 'en_US') as the first part of the path under src/documentation/content/xdocs. For example, src/documentation/content/xdocs/en_US/mydocument.xml would be the starting point. The question is what the $path variable will contain - if it's just en_US/mydocument.xml my job is easy. If it could be en_US\mydocument.xml on Windows and en_US/mydocument.xml on Unix it's a bit harder. But if it is the absolute path xsl expressions aren't going to help me and I'd better find a better solution. What I'd do (and this might even make a decent general patch) is look for the property with the language specifier first. For example, instead of looking for output.pdf.fontFamily.sansSerif first, I'd look for output.pdf.fontFamily.sansSerif.en_US first, and only look for the other if that property is not found. So, what can I expect to see for the $path parameter? Thanks again for your help! Karl
Re: Is there a decent way of using different PDF fonts for different parts of a Forrest site?
Hi Hitoshi, plugins/org.apache.forrest.plugin.output.pdf/resources/stylesheets/document-to-fo.xsl does seem like the right place to conditionalize things, but I'm unclear in your example where the language specifier comes from? In other words, I'd like the path to the current file to determine the language, not the system settings. Do you (or does anyone else) know how to construct a conditional within the document-to-fo.xsl file that would (say) base a decision for a font choice on whether a file had a name that matched a particular regular expression? That's the kind of logic I'm looking for here. Thanks, Karl On Thu, Jan 26, 2012 at 11:01 PM, Hitoshi Ozawa ozawa_hito...@ogis-ri.co.jp wrote: Hi Karl, It's really not just about the font. document-to-fo.xsl, language=ja attribute should be added to the fo:root element when generating Japanese pdf files. So, to put it all together, document-to-fo.xsl should be modified to contain a when block to check lang and output an appropriate font and language. xsl:choose xsl:when test='lang(ja)'IPAPGothic/xsl:when xsl:otherwiseserif/xsl:otherwise /xsl:choose The question is if there is a more general way to do this than editing the xsl file. H.Ozawa (2012/01/27 11:38), Karl Wright wrote: Hello, I have a site which has different languages in the same site. This works OK except when it comes to PDF generation. There seems to be no font choice that covers all languages; I need Dejavu for latin languages, and IPA for Japanese. The problem is that I can't figure out how to configure Forrest to use one set of fonts for part of the site and a different set for another, for PDF generation. Is this even possible? Thanks, Karl
Re: Is there a decent way of using different PDF fonts for different parts of a Forrest site?
On Tue, Jan 31, 2012 at 3:16 AM, Karl Wright daddy...@gmail.com wrote: Hi Hitoshi, plugins/org.apache.forrest.plugin.output.pdf/resources/stylesheets/document-to-fo.xsl does seem like the right place to conditionalize things, but I'm unclear in your example where the language specifier comes from? In other words, I'd like the path to the current file to determine the language, not the system settings. Do you (or does anyone else) know how to construct a conditional within the document-to-fo.xsl file that would (say) base a decision for a font choice on whether a file had a name that matched a particular regular expression? That's the kind of logic I'm looking for here. Hi Karl, Know? Unfortunately not - this is a guess. Create a copy of document-to-fo.xsl - using the project-specific locationmap to find it. Then, inside your own document-to-fo.xsl you should have access to a path parameter. You may add an additional condition to the font of interest (e.g. rootFontFamily) that uses XSL string functions against your $path parameter. Unfortunately, I can't verify any of this until tonight. Thanks, --tim
Re: Is there a decent way of using different PDF fonts for different parts of a Forrest site?
On Tue, Jan 31, 2012 at 8:04 AM, Tim Williams william...@gmail.com wrote: On Tue, Jan 31, 2012 at 3:16 AM, Karl Wright daddy...@gmail.com wrote: Hi Hitoshi, plugins/org.apache.forrest.plugin.output.pdf/resources/stylesheets/document-to-fo.xsl does seem like the right place to conditionalize things, but I'm unclear in your example where the language specifier comes from? In other words, I'd like the path to the current file to determine the language, not the system settings. Do you (or does anyone else) know how to construct a conditional within the document-to-fo.xsl file that would (say) base a decision for a font choice on whether a file had a name that matched a particular regular expression? That's the kind of logic I'm looking for here. Hi Karl, Know? Unfortunately not - this is a guess. Create a copy of document-to-fo.xsl - using the project-specific locationmap to find it. Then, inside your own document-to-fo.xsl you should have access to a path parameter. You may add an additional condition to the font of interest (e.g. rootFontFamily) that uses XSL string functions against your $path parameter. Unfortunately, I can't verify any of this until tonight. Thanks, --tim Thanks, Tim, for the reply. I'll experiment to see if I can use $path in the manner I need. Could you elaborate on where the project-specific locationmap should be found? Our site was created initially by someone else and doesn't appear to have such a thing. Karl
Re: Is there a decent way of using different PDF fonts for different parts of a Forrest site?
Then, inside your own document-to-fo.xsl you should have access to a path parameter. You may add an additional condition to the font of interest (e.g. rootFontFamily) that uses XSL string functions against your $path parameter. I've set things up so that my document path includes the language code (e.g. 'en_US') as the first part of the path under src/documentation/content/xdocs. For example, src/documentation/content/xdocs/en_US/mydocument.xml would be the starting point. The question is what the $path variable will contain - if it's just en_US/mydocument.xml my job is easy. If it could be en_US\mydocument.xml on Windows and en_US/mydocument.xml on Unix it's a bit harder. But if it is the absolute path xsl expressions aren't going to help me and I'd better find a better solution. What I'd do (and this might even make a decent general patch) is look for the property with the language specifier first. For example, instead of looking for output.pdf.fontFamily.sansSerif first, I'd look for output.pdf.fontFamily.sansSerif.en_US first, and only look for the other if that property is not found. So, what can I expect to see for the $path parameter? Thanks again for your help! Karl
Re: Is there a decent way of using different PDF fonts for different parts of a Forrest site?
There are so many problems here that I now think the only way to actually get this to work is to make a copy of Forrest via ant and modify the Forrest files, also via ant. I've set this up for the ManifoldCF site build now and we should be able to work our way through it a problem at a time, until we get it to work. Karl On Thu, Jan 26, 2012 at 11:01 PM, Hitoshi Ozawa ozawa_hito...@ogis-ri.co.jp wrote: Hi Karl, It's really not just about the font. document-to-fo.xsl, language=ja attribute should be added to the fo:root element when generating Japanese pdf files. So, to put it all together, document-to-fo.xsl should be modified to contain a when block to check lang and output an appropriate font and language. xsl:choose xsl:when test='lang(ja)'IPAPGothic/xsl:when xsl:otherwiseserif/xsl:otherwise /xsl:choose The question is if there is a more general way to do this than editing the xsl file. H.Ozawa (2012/01/27 11:38), Karl Wright wrote: Hello, I have a site which has different languages in the same site. This works OK except when it comes to PDF generation. There seems to be no font choice that covers all languages; I need Dejavu for latin languages, and IPA for Japanese. The problem is that I can't figure out how to configure Forrest to use one set of fonts for part of the site and a different set for another, for PDF generation. Is this even possible? Thanks, Karl