Re: How to translate characters?
I overlooked a couple things here... so by way of explanation: On 09/02/2011 02:44 PM, Eric Douglas wrote: > I see. As I said I saw something in the FOP classes which appeared > to be looking for such a code and translating it, but I just pulled > up a .FO file and I see it's already translated to be > □ so there must be something in the Oracle > Transformer. There is nothing in the Oracle Transformer doing this. When you pass XML+XSLT or raw FO XML to FOP, the first thing that happens is the XML is parsed. XML is a markup language (obviously): the information represented by: □ □ □ □ is not only identical in effect, but literally indistinguishable after parsing. Operating on the parsed document, you cannot tell these things apart. They each represent a single XML element (named inline in the FO namespace) with a single character of content, U+25A1 WHITE SQUARE. The Oracle Transformer is operating on that data: an element with content that is one character long. No lookup or mapping is done. > So it seems FOP just gets the actual square and still has to know > what character it maps to in the font. FOP gets the square which *is* a character. It knows which character it maps to because it *is* that character. What FOP doesn’t know (at first) is which fonts have useful glyphs for that character. It looks through the fonts currently in scope (as specified in the list in the font-family property) to find the first one that does specify a useful glyph for that character.[*] ~Chris [*] Strictly, as I understand it, it looks for the font that best matches an entire string, as character-by-character font selection isn’t implemented. But for a single-character string, it’s the same thing. -- Chris Maden, text nerd http://crism.maden.org/ > “The present tendency and drift towards the Police State gives all free Americans pause.” — Alabama Supreme Court, 1955 (Pike v. Southern Bell Tel. & Telegraph, 81 So.2d 254)
Re: How to translate characters?
On 09/02/2011 02:44 PM, Eric Douglas wrote: > I see. As I said I saw something in the FOP classes which appeared > to be looking for such a code and translating it, but I just pulled > up a .FO file and I see it's already translated to be > □ so there must be something in the Oracle > Transformer. > So it seems FOP just gets the actual square and still has to know > what character it maps to in the font. > > So I'm trying to pass in this text ("□") and get it to display > with Java's Graphics2D.drawText(). > So I'm wondering if I translate that the same way I do to create this > FO, with an XSL file and a Transformer or if there's a simpler > method. > So I'm looking at the class java.nio.charset.Charset trying to figure > out if or how that connects to a custom font file. Passing that string, you are passing a series of characters: ampersand, number sign, lower-case Latin letter x, Arabic numeral two, etc. You need to pass the text “□” — a single character, white square. If all you have is the character code (U+25A1), you can create a new String using the code; one of the String constructors takes an array of integer code points as an argument. ~Chris -- Chris Maden, text nerd http://crism.maden.org/ > “The present tendency and drift towards the Police State gives all free Americans pause.” — Alabama Supreme Court, 1955 (Pike v. Southern Bell Tel. & Telegraph, 81 So.2d 254)
RE: How to translate characters?
I see. As I said I saw something in the FOP classes which appeared to be looking for such a code and translating it, but I just pulled up a .FO file and I see it's already translated to be □ so there must be something in the Oracle Transformer. So it seems FOP just gets the actual square and still has to know what character it maps to in the font. So I'm trying to pass in this text ("□") and get it to display with Java's Graphics2D.drawText(). So I'm wondering if I translate that the same way I do to create this FO, with an XSL file and a Transformer or if there's a simpler method. So I'm looking at the class java.nio.charset.Charset trying to figure out if or how that connects to a custom font file. -Original Message- From: Christopher R. Maden [mailto:cr...@maden.org] Sent: Friday, September 02, 2011 1:56 PM To: fop-dev@xmlgraphics.apache.org Subject: Re: How to translate characters? On 09/02/2011 01:40 PM, Eric Douglas wrote: > I pass a character into my XML/FO as □ and it shows on the PDF > as a square. > I'm trying to figure out what Java has for interpreting such code, and > it appears FOP just string searches and pulls out the number, in the > class org.apache.xmlgraphics.fonts.Glyphs. > Is this all it is, to search text for "" and ";" and find the > character value between, or is there an actual Java class/method for > translating such values? By the time FOP gets this information, the XML has been parsed. □ is just a convenient way of entering the single character with Unicode value 25A1, □, WHITE SQUARE. Equivalents would be □ or (with common ISO entity declarations) □ - in all cases, FOP just receives a single character, □. FOP then attempts to find which of the specified fonts actually has a glyph for that character, and does so using the numeric Unicode value of the character, but that is independent of how the input XML (which FOP does not see) specified the character. If you’re looking at altering or overriding the code, you need to operate in the character domain, not the XML markup domain. (By analogy, FOP receives elements, root-in-the-FO-namespace etc., not the string “http://crism.maden.org/ > “The present tendency and drift towards the Police State gives all free Americans pause.” - Alabama Supreme Court, 1955 (Pike v. Southern Bell Tel. & Telegraph, 81 So.2d 254)
Re: How to translate characters?
On 09/02/2011 01:40 PM, Eric Douglas wrote: > I pass a character into my XML/FO as □ and it shows on the PDF > as a square. > I'm trying to figure out what Java has for interpreting such code, > and it appears FOP just string searches and pulls out the number, in > the class org.apache.xmlgraphics.fonts.Glyphs. > Is this all it is, to search text for "" and ";" and find the > character value between, or is there an actual Java class/method for > translating such values? By the time FOP gets this information, the XML has been parsed. □ is just a convenient way of entering the single character with Unicode value 25A1, □, WHITE SQUARE. Equivalents would be □ or (with common ISO entity declarations) □ — in all cases, FOP just receives a single character, □. FOP then attempts to find which of the specified fonts actually has a glyph for that character, and does so using the numeric Unicode value of the character, but that is independent of how the input XML (which FOP does not see) specified the character. If you’re looking at altering or overriding the code, you need to operate in the character domain, not the XML markup domain. (By analogy, FOP receives elements, root-in-the-FO-namespace etc., not the string “http://crism.maden.org/ > “The present tendency and drift towards the Police State gives all free Americans pause.” — Alabama Supreme Court, 1955 (Pike v. Southern Bell Tel. & Telegraph, 81 So.2d 254)
How to translate characters?
I pass a character into my XML/FO as □ and it shows on the PDF as a square. I'm trying to figure out what Java has for interpreting such code, and it appears FOP just string searches and pulls out the number, in the class org.apache.xmlgraphics.fonts.Glyphs. Is this all it is, to search text for "" and ";" and find the character value between, or is there an actual Java class/method for translating such values?
DO NOT REPLY [Bug 51760] New: [PATCH] PostScript PDF-image causes error
https://issues.apache.org/bugzilla/show_bug.cgi?id=51760 Bug #: 51760 Summary: [PATCH] PostScript PDF-image causes error Product: Fop Version: 1.0 Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: ps AssignedTo: fop-dev@xmlgraphics.apache.org ReportedBy: med1...@gmail.com Classification: Unclassified Created attachment 27452 --> https://issues.apache.org/bugzilla/attachment.cgi?id=27452 ps-image patch When a PDF-image is used to create PostScript, the PS is stored as an array. This array can run beyond the 65535 element limitation, so an alternate method can be implemented by using a SubFileDecode filter. This way, there is no limitation on the number of commands, however since this is a PS language level 3 operator the old method needs to be used for PS level 2. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug.
DO NOT REPLY [Bug 51759] New: [PATCH] Moved unique font name prefixing to PDFFactory and added test
https://issues.apache.org/bugzilla/show_bug.cgi?id=51759 Bug #: 51759 Summary: [PATCH] Moved unique font name prefixing to PDFFactory and added test Product: Fop Version: 1.0 Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: fonts AssignedTo: fop-dev@xmlgraphics.apache.org ReportedBy: med1...@gmail.com Classification: Unclassified Created attachment 27451 --> https://issues.apache.org/bugzilla/attachment.cgi?id=27451 pdf-font-prefix patch In PDFs, a subset font is required to have a unique tag prefixing its name, as specified in the PDF spec. Currently this is implemented in o.a.f.fonts/MultiByteFont.java, however, there requires a synchronized iterator for multi-threading reasons. This has been moved to PDFFactory to remove the synchronization issues, also, it's a PDF-only mechanism, not required elsewhere. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug.