EPS boxes are too small

0 votes
asked Apr 10, 2014 in Bug by Hywan (200 points)
Hello :-),

EPS creates boxes that are too small. Example: https://dl.dropboxusercontent.com/u/26317193/PlantUML_bug.eps, the texts are overflowing their respectives boxes.

Got this result with the following command: cat Foo.uml | java -jar plantuml.jar -pipe -Smonochrome=true -teps > out.eps. If I pipe out.eps to epstopdf --filter --outfile=out.pdf, I got the same result. Boxes are still too small :-).

Since the PDF export does not work (see http://plantuml.sourceforge.net/qa/?qa=1026), I would like to use EPS and then convert to PDF by myself. Don't ask me to export into SVG and then convert into PDF because the toolchain is too much complicated to deploy. My thought is that it would be benefit to invest time to fix bug #1026 instead of this one since EPS is not so used out there.

Thanks!
commented Jun 1, 2015 by otrosien (120 points)
Just a note on how I fixed it: In my case the boxes (class, package label) in the SVG output were too small. Now I am rendering to EPS instead and everything looks beautiful. I.e., your mileage may vary.

Is there a way to find out which font plantuml is actually using for rendering?
commented Jun 1, 2015 by plantuml (295,000 points)
Could you post/send us your example ?
commented Jun 1, 2015 by otrosien (120 points)
Sent an example to your gmail account.

3 Answers

0 votes
answered Apr 10, 2014 by Hywan (200 points)
With the default Latex font (aka CMU Serif), the problem has been solved. So it may be related to the font width computation :-).
0 votes
answered Apr 10, 2014 by plantuml (295,000 points)
Could you send us your Foo.uml file, so that we could investigate the issue ? Thanks!
0 votes
answered Apr 10, 2014 by Hywan (200 points)

@startuml

    skinparam nodesep 1
    skinparam ranksep 1

    package Praspel <<Frame>> {
        class Behavior
        abstract class Clause
        class Collection
        class Description
        class DefaultBehavior
        class Declaration
        class Ensures
        class Invariant
        class Is
        class Requires
        class Specification
        class Throwable

        package Variables <<Frame>> {
            class Variable
            class Implicit
            class Borrowing
        }
    }

    package Realdom <<Frame>> {
        class IRealdom_Holder
    }

    Clause          <|-- Behavior
    Clause          <|-- Declaration
    Clause          <|-- Description
    Clause          <|-- Is
    Clause          <|-- Throwable
    Behavior        <|-- DefaultBehavior
    Behavior        <|-- Specification
    Declaration     <|-- Ensures
    Declaration     <|-- Invariant
    Declaration     <|-- Requires

    Behavior      *-- "1" Requires
    Behavior      *-- "1" Collection
    Behavior      *-- "1" DefaultBehavior
    Behavior      *-- "1" Ensures
    Behavior      *-- "1" Throwable
    Behavior      *-- "1" Description
    Specification *-- "1" Is
    Specification *-- "1" Invariant
    Declaration   *-- "n" Variable
    Specification *-- "n" Implicit

    Variable <|-- Implicit
    Variable <|-- Borrowing

    IRealdom_Holder <|-- Variable

@enduml

 

...