You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-users@xmlgraphics.apache.org by Mostafa Mahdieh <m....@gmail.com> on 2013/06/24 15:03:30 UTC

Text rendering of some Persian characters has issues when converting SVG to PNG

Hi,

I am using Activiti Explorer 5.12.1, which uses batik transcoder 1.7 as a
library. When exporting bpmn models to png using Activiti Explorer, the
output has issues on characters "ی", "ک", "پ" and "گ". Note that theses
characters are part of the Persian character set of utf-8, and other
characters which are in the common set of Arabic and Persian character
sets, don't seem to have any problems.

I have *attached* a sample of one of my tests. The text in the box should
read

"ما کب گپ جیب جوب پا"

which is incorrectly shown as

"ما ک‌ب گ‌پ ج‌ی‌ب جوب پ‌ا"

I traced the problem in Activiti Explorer code to this small code snippet:

=======================
      InputStream svgStream = new
ByteArrayInputStream(modelForm.getFirstValue("svg_xml").getBytes("utf-8"));
      TranscoderInput input = new TranscoderInput(svgStream);

      PNGTranscoder transcoder = new PNGTranscoder();
      // Setup output
      ByteArrayOutputStream outStream = new ByteArrayOutputStream();
      TranscoderOutput output = new TranscoderOutput(outStream);

      // Do the transformation
      transcoder.transcode(input, output);
      final byte[] result = outStream.toByteArray();
=======================

It seems that the issues are coming from the PNGTranscoder not being able
to render persian text correctly. PNGTranscoder is part of Apache Batik
(org.apache.batik.transcoder.image.PNGTranscoder).

I have also created a very small eclipse project which does the same thing,
independent of any Activiti Explorer code, which helps a lot to debug the
problem. The project is attached.

More details:

OS: Ubuntu Linux 12.04 (3.2.0-44-generic #69-Ubuntu SMP Thu May 16 17:35:01
UTC 2013 x86_64 x86_64 x86_64 GNU/Linux)

Java: java version "1.7.0_21"
OpenJDK Runtime Environment (IcedTea 2.3.9) (7u21-2.3.9-0ubuntu0.12.04.1)

Batik version used by Activiti Explorer (found in the MANIFEST.MF of the
jar file included): 1.7+r608262

Regards
-- 
Mostafa Mahdieh

Re: Text rendering of some Persian characters has issues when converting SVG to PNG

Posted by Mostafa Mahdieh <m....@gmail.com>.
Does anyone see my messages? Am I sending to the wrong group?


On Wed, Jun 26, 2013 at 11:53 PM, Mostafa Mahdieh <m....@gmail.com>wrote:

> Any ideas?
>
>
> On Mon, Jun 24, 2013 at 5:33 PM, Mostafa Mahdieh <m....@gmail.com>wrote:
>
>> Hi,
>>
>> I am using Activiti Explorer 5.12.1, which uses batik transcoder 1.7 as a
>> library. When exporting bpmn models to png using Activiti Explorer, the
>> output has issues on characters "ی", "ک", "پ" and "گ". Note that theses
>> characters are part of the Persian character set of utf-8, and other
>> characters which are in the common set of Arabic and Persian character
>> sets, don't seem to have any problems.
>>
>> I have *attached* a sample of one of my tests. The text in the box
>> should read
>>
>> "ما کب گپ جیب جوب پا"
>>
>> which is incorrectly shown as
>>
>> "ما ک‌ب گ‌پ ج‌ی‌ب جوب پ‌ا"
>>
>> I traced the problem in Activiti Explorer code to this small code snippet:
>>
>> =======================
>>       InputStream svgStream = new
>> ByteArrayInputStream(modelForm.getFirstValue("svg_xml").getBytes("utf-8"));
>>       TranscoderInput input = new TranscoderInput(svgStream);
>>
>>       PNGTranscoder transcoder = new PNGTranscoder();
>>       // Setup output
>>       ByteArrayOutputStream outStream = new ByteArrayOutputStream();
>>       TranscoderOutput output = new TranscoderOutput(outStream);
>>
>>       // Do the transformation
>>       transcoder.transcode(input, output);
>>       final byte[] result = outStream.toByteArray();
>> =======================
>>
>> It seems that the issues are coming from the PNGTranscoder not being able
>> to render persian text correctly. PNGTranscoder is part of Apache Batik
>> (org.apache.batik.transcoder.image.PNGTranscoder).
>>
>> I have also created a very small eclipse project which does the same
>> thing, independent of any Activiti Explorer code, which helps a lot to
>> debug the problem. The project is attached.
>>
>> More details:
>>
>> OS: Ubuntu Linux 12.04 (3.2.0-44-generic #69-Ubuntu SMP Thu May 16
>> 17:35:01 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux)
>>
>> Java: java version "1.7.0_21"
>> OpenJDK Runtime Environment (IcedTea 2.3.9) (7u21-2.3.9-0ubuntu0.12.04.1)
>>
>> Batik version used by Activiti Explorer (found in the MANIFEST.MF of the
>> jar file included): 1.7+r608262
>>
>> Regards
>> --
>> Mostafa Mahdieh
>>
>
>
>
> --
> Mostafa Mahdieh
>



-- 
Mostafa Mahdieh

Re: Text rendering of some Persian characters has issues when converting SVG to PNG

Posted by Mostafa Mahdieh <m....@gmail.com>.
Any ideas?


On Mon, Jun 24, 2013 at 5:33 PM, Mostafa Mahdieh <m....@gmail.com>wrote:

> Hi,
>
> I am using Activiti Explorer 5.12.1, which uses batik transcoder 1.7 as a
> library. When exporting bpmn models to png using Activiti Explorer, the
> output has issues on characters "ی", "ک", "پ" and "گ". Note that theses
> characters are part of the Persian character set of utf-8, and other
> characters which are in the common set of Arabic and Persian character
> sets, don't seem to have any problems.
>
> I have *attached* a sample of one of my tests. The text in the box should
> read
>
> "ما کب گپ جیب جوب پا"
>
> which is incorrectly shown as
>
> "ما ک‌ب گ‌پ ج‌ی‌ب جوب پ‌ا"
>
> I traced the problem in Activiti Explorer code to this small code snippet:
>
> =======================
>       InputStream svgStream = new
> ByteArrayInputStream(modelForm.getFirstValue("svg_xml").getBytes("utf-8"));
>       TranscoderInput input = new TranscoderInput(svgStream);
>
>       PNGTranscoder transcoder = new PNGTranscoder();
>       // Setup output
>       ByteArrayOutputStream outStream = new ByteArrayOutputStream();
>       TranscoderOutput output = new TranscoderOutput(outStream);
>
>       // Do the transformation
>       transcoder.transcode(input, output);
>       final byte[] result = outStream.toByteArray();
> =======================
>
> It seems that the issues are coming from the PNGTranscoder not being able
> to render persian text correctly. PNGTranscoder is part of Apache Batik
> (org.apache.batik.transcoder.image.PNGTranscoder).
>
> I have also created a very small eclipse project which does the same
> thing, independent of any Activiti Explorer code, which helps a lot to
> debug the problem. The project is attached.
>
> More details:
>
> OS: Ubuntu Linux 12.04 (3.2.0-44-generic #69-Ubuntu SMP Thu May 16
> 17:35:01 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux)
>
> Java: java version "1.7.0_21"
> OpenJDK Runtime Environment (IcedTea 2.3.9) (7u21-2.3.9-0ubuntu0.12.04.1)
>
> Batik version used by Activiti Explorer (found in the MANIFEST.MF of the
> jar file included): 1.7+r608262
>
> Regards
> --
> Mostafa Mahdieh
>



-- 
Mostafa Mahdieh