Re: How to translate characters?

2011-09-02 Thread Christopher R. Maden
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?

2011-09-02 Thread Christopher R. Maden
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?

2011-09-02 Thread Eric Douglas
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?

2011-09-02 Thread Christopher R. Maden
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?

2011-09-02 Thread Eric Douglas
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

2011-09-02 Thread bugzilla
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

2011-09-02 Thread bugzilla
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.