You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by "zhw (Jira)" <ji...@apache.org> on 2020/04/20 10:55:00 UTC

[jira] [Updated] (FOP-2932) SVG to EPS

     [ https://issues.apache.org/jira/browse/FOP-2932?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

zhw updated FOP-2932:
---------------------
    Description: 
I tried to convert SVG to EPS. Although it was successful, the content of EPS file converted was incorrect,  I was very surprised why the color of EPS file generated was lost。

version:
{code:java}
<dependency>
    <groupId>org.apache.xmlgraphics</groupId>
    <artifactId>fop</artifactId>
    <version>2.4</version>
</dependency>



<dependency>
    <groupId>org.apache.xmlgraphics</groupId>
    <artifactId>batik-all</artifactId>
    <version>1.12</version>
    <type>pom</type>
</dependency>
{code}
{code:java}
public void svgtoeps(String svgCode, OutputStream os){
    EPSTranscoder epsTranscoder = new EPSTranscoder();
    try {
        svgCode = svgCode.replaceAll(":rect", "rect");
        TranscoderInput input = new TranscoderInput(new ByteArrayInputStream(svgCode.getBytes()));
        TranscoderOutput output = new TranscoderOutput(os);
        epsTranscoder.transcode(input, output);
        os.flush();
        os.close();
    } catch (Exception e) {
    }
}
{code}
svg:
{code:java}
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1034.7 791.52"><defs><radialGradient id="a88099553-ad5b-4e3d-9162-06592b3c5c3a" cx="521.08" cy="461.4" r="330.12" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#e35f67"/><stop offset="1" stop-color="#a6222b"/></radialGradient></defs><g><g><path d="M57.24 464.41l155.71 127c31.62 25.78 57.24 3.65 57.24-49.43V280.52c0-53.08-25.63-117-57.24-142.79L57.24 10.76C25.63-15 0 7.11 0 60.19v261.43c0 53.08 25.63 117.01 57.24 142.79zM977.45 464.41l-155.71 127c-31.62 25.78-57.24 3.65-57.24-49.43V280.52c0-53.08 25.63-117 57.24-142.79l155.71-127c31.62-25.78 57.24-3.65 57.24 49.43v261.46c.01 53.08-25.62 117.01-57.24 142.79z" fill="#cfd4d5"/><rect x="190.96" y="131.28" width="660.23" height="660.23" rx="207.26" ry="207.26" fill="url(#a88099553-ad5b-4e3d-9162-06592b3c5c3a)"/><path d="M619.78 319.62a114.15 114.15 0 0 0-98.7 56.72 114.21 114.21 0 0 0-212.9 57.48c0 119.3 212.9 210.66 212.9 210.66S734 540.06 734 433.82a114.2 114.2 0 0 0-114.22-114.2z" fill="#fff"/></g></g></svg>
{code}
 svg: !image-2020-04-20-18-46-35-831.png|width=284,height=215!  

 

eps:

!image-2020-04-20-18-47-10-582.png|width=253,height=190!
  
 Please help me,thank you

  was:
I tried to convert SVG to EPS. Although it was successful, the content of EPS file converted was incorrect, and the rendering of original SVG file was lost. I was very surprised why the color of EPS file generated was lost。

version:
{code:java}
<dependency>
    <groupId>org.apache.xmlgraphics</groupId>
    <artifactId>fop</artifactId>
    <version>2.4</version>
</dependency>



<dependency>
    <groupId>org.apache.xmlgraphics</groupId>
    <artifactId>batik-all</artifactId>
    <version>1.12</version>
    <type>pom</type>
</dependency>
{code}
{code:java}
public void svgtoeps(String svgCode, OutputStream os){
    EPSTranscoder epsTranscoder = new EPSTranscoder();
    try {
        svgCode = svgCode.replaceAll(":rect", "rect");
        TranscoderInput input = new TranscoderInput(new ByteArrayInputStream(svgCode.getBytes()));
        TranscoderOutput output = new TranscoderOutput(os);
        epsTranscoder.transcode(input, output);
        os.flush();
        os.close();
    } catch (Exception e) {
    }
}
{code}
svg:
{code:java}
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1034.7 791.52"><defs><radialGradient id="a88099553-ad5b-4e3d-9162-06592b3c5c3a" cx="521.08" cy="461.4" r="330.12" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#e35f67"/><stop offset="1" stop-color="#a6222b"/></radialGradient></defs><g><g><path d="M57.24 464.41l155.71 127c31.62 25.78 57.24 3.65 57.24-49.43V280.52c0-53.08-25.63-117-57.24-142.79L57.24 10.76C25.63-15 0 7.11 0 60.19v261.43c0 53.08 25.63 117.01 57.24 142.79zM977.45 464.41l-155.71 127c-31.62 25.78-57.24 3.65-57.24-49.43V280.52c0-53.08 25.63-117 57.24-142.79l155.71-127c31.62-25.78 57.24-3.65 57.24 49.43v261.46c.01 53.08-25.62 117.01-57.24 142.79z" fill="#cfd4d5"/><rect x="190.96" y="131.28" width="660.23" height="660.23" rx="207.26" ry="207.26" fill="url(#a88099553-ad5b-4e3d-9162-06592b3c5c3a)"/><path d="M619.78 319.62a114.15 114.15 0 0 0-98.7 56.72 114.21 114.21 0 0 0-212.9 57.48c0 119.3 212.9 210.66 212.9 210.66S734 540.06 734 433.82a114.2 114.2 0 0 0-114.22-114.2z" fill="#fff"/></g></g></svg>
{code}
 svg: !image-2020-04-20-18-46-35-831.png|width=284,height=215!  

 

eps:

!image-2020-04-20-18-47-10-582.png|width=253,height=190!
 
Please help me,thank you


> SVG to EPS
> ----------
>
>                 Key: FOP-2932
>                 URL: https://issues.apache.org/jira/browse/FOP-2932
>             Project: FOP
>          Issue Type: Bug
>          Components: renderer/ps
>         Environment: linux 
>            Reporter: zhw
>            Priority: Blocker
>         Attachments: c.svg, image-2020-04-20-18-46-35-831.png, image-2020-04-20-18-47-10-582.png, svgToEpsFile.eps
>
>
> I tried to convert SVG to EPS. Although it was successful, the content of EPS file converted was incorrect,  I was very surprised why the color of EPS file generated was lost。
> version:
> {code:java}
> <dependency>
>     <groupId>org.apache.xmlgraphics</groupId>
>     <artifactId>fop</artifactId>
>     <version>2.4</version>
> </dependency>
> <dependency>
>     <groupId>org.apache.xmlgraphics</groupId>
>     <artifactId>batik-all</artifactId>
>     <version>1.12</version>
>     <type>pom</type>
> </dependency>
> {code}
> {code:java}
> public void svgtoeps(String svgCode, OutputStream os){
>     EPSTranscoder epsTranscoder = new EPSTranscoder();
>     try {
>         svgCode = svgCode.replaceAll(":rect", "rect");
>         TranscoderInput input = new TranscoderInput(new ByteArrayInputStream(svgCode.getBytes()));
>         TranscoderOutput output = new TranscoderOutput(os);
>         epsTranscoder.transcode(input, output);
>         os.flush();
>         os.close();
>     } catch (Exception e) {
>     }
> }
> {code}
> svg:
> {code:java}
> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1034.7 791.52"><defs><radialGradient id="a88099553-ad5b-4e3d-9162-06592b3c5c3a" cx="521.08" cy="461.4" r="330.12" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#e35f67"/><stop offset="1" stop-color="#a6222b"/></radialGradient></defs><g><g><path d="M57.24 464.41l155.71 127c31.62 25.78 57.24 3.65 57.24-49.43V280.52c0-53.08-25.63-117-57.24-142.79L57.24 10.76C25.63-15 0 7.11 0 60.19v261.43c0 53.08 25.63 117.01 57.24 142.79zM977.45 464.41l-155.71 127c-31.62 25.78-57.24 3.65-57.24-49.43V280.52c0-53.08 25.63-117 57.24-142.79l155.71-127c31.62-25.78 57.24-3.65 57.24 49.43v261.46c.01 53.08-25.62 117.01-57.24 142.79z" fill="#cfd4d5"/><rect x="190.96" y="131.28" width="660.23" height="660.23" rx="207.26" ry="207.26" fill="url(#a88099553-ad5b-4e3d-9162-06592b3c5c3a)"/><path d="M619.78 319.62a114.15 114.15 0 0 0-98.7 56.72 114.21 114.21 0 0 0-212.9 57.48c0 119.3 212.9 210.66 212.9 210.66S734 540.06 734 433.82a114.2 114.2 0 0 0-114.22-114.2z" fill="#fff"/></g></g></svg>
> {code}
>  svg: !image-2020-04-20-18-46-35-831.png|width=284,height=215!  
>  
> eps:
> !image-2020-04-20-18-47-10-582.png|width=253,height=190!
>   
>  Please help me,thank you



--
This message was sent by Atlassian Jira
(v8.3.4#803005)