Quick Start

Check Environment

We can perform a environment check using the following command:

1
plantumlcli -c

In plantumlcli, the available environments can be categorized into local environments and remote environments, as follows:

  • Local Environments: Environments based on Java (both Oracle JDK and OpenJDK are supported) and the local plantuml.jar package. UML diagram generation is achieved by invoking the java -jar plantuml.jar command.

  • Remote Environments: Environments based on the plantuml-server and the official PlantUML website. UML images are obtained by accessing their APIs, and the images are generated remotely and loaded into the local environment.

In the current environment, we are only connected to a docker-based plantuml-server. The inspection results are as follows:

1
2
3
4
5
6
Local plantuml not detected or has problem.
Error : ValueError('Plantuml jar file not given.')
Remote plantuml detected.
PlantUML Server Version 1202306
Remote host : http://localhost:18080
Connection time : 0.020s

Export Diagrams From Code

Here is one example plantuml code in file common.puml.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
@startuml
hide empty description

state "Idle" as idle
state "Ringing" as ringing
state "Dialing" as dialing
state "Calling" as calling

[*] -> idle : power on
idle -> [*] : power off

idle -> ringing : incoming call
ringing -> calling : pick up

idle -> dialing : outgoing call
dialing -> calling : be answered
dialing -> idle : nobody

calling -down-> idle : hang up
@enduml

Export to ASCII Arts

Some very simple UML diagrams can be viewed directly in the command line using ASCII art. For example, the following code for helloworld.puml:

1
2
3
@startuml
Bob -> Alice : hello
@enduml

Enter the following command:

1
plantumlcli -T helloworld.puml

You will see:

1
2
3
4
5
6
7
8
9
helloworld.puml: 
     ┌───┐          ┌─────┐
     │Bob│          │Alice│
     └─┬─┘          └──┬──┘
       │    hello      │   
       │──────────────>│   
     ┌─┴─┐          ┌──┴──┐
     │Bob│          │Alice│
     └───┘          └─────┘

Export to PNG Image

Convert the code to PNG image with the following command

1
plantumlcli -t png -o common.dat.png common.puml

And this is the common.dat.png:

../../_images/common.dat.png

Export to SVG Image

Convert the code to SVG image with the following command

1
plantumlcli -t svg -o common.dat.svg common.puml

And this is the common.dat.svg:

../../_images/common.dat.svg

Export to EPS Image

Convert the code to EPS image with the following command

1
plantumlcli -t eps -o common.dat.eps common.puml

And this is the common.dat.eps.

Warning

The EPS format has been deprecated and is no longer widely supported in many applications, so it is not recommended to continue using it. If you need to use vector graphics in LaTeX, it is recommended to use the PDF format. If you need to import vector graphics into Microsoft Office software, it is recommended to use the SVG format.

Export to PDF Image

Convert the code to PDF image with the following command

1
plantumlcli -t pdf -o common.dat.pdf common.puml

And this is the common.dat.pdf.

Note

If you need to convert it to PDF format, you will need to install plantumlcli[pdf] like this:

pip install plantumlcli[pdf]

More Details

You can see the help information with

1
plantumlcli --help

And this is the help information for plantumlcli

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Usage: plantumlcli [OPTIONS] [SOURCES]...

Options:
  -v, --version                   Show package's version information.
  -j, --java TEXT                 Path of java executable file (will load from
                                  environment when not given).  [default:
                                  (java from ${PATH})]
  -p, --plantuml TEXT             Path of plantuml jar file (will load from
                                  ${PLANTUML_JAR} when not given).
  -r, --remote-host TEXT          Remote host of the online plantuml editor
                                  (will load from ${PLANTUML_HOST} when not
                                  given).  [default:
                                  http://www.plantuml.com/plantuml]
  -L, --use-local                 Use local plantuml only.
  -R, --use-remote                Use remote plantuml only.
  -c, --check                     Check usable plantuml.
  -u, --url                       Print url of remote plantuml resource
                                  (ignore -L and -R).
  --homepage-url                  Print url of remote plantuml editor (ignore
                                  -L, -R and -u).
  -t, --type [TXT|PNG|SVG|EPS|PDF]
                                  Type of plantuml resource. (Attention that
                                  the PDF format is only natively supported by
                                  few versions of plantuml-server. Please
                                  install 'plantumlcli[pdf]' and Cairo
                                  environment to make sure the export to PDF
                                  can be processed.)  [default: PNG]
  -T, --text                      Display text uml graph by stdout (ignore
                                  -t).
  -o, --output TEXT               Paths of output files (relative path
                                  supported, based on output dir in -O).
  -O, --output-dir DIRECTORY      Base path for outputting files.  [default:
                                  (current path)]
  -n, --concurrency INTEGER       Concurrency when running plantuml.
                                  [default: 2]
  -h, --help                      Show this message and exit.