# Import external PDF or SVG to Makie figure

**URL:** https://discourse.julialang.org/t/import-external-pdf-or-svg-to-makie-figure/126891
**Category:** Visualization
**Tags:** makie, plot, pdf
**Created:** [March 12, 2025, 11:52pm UTC](https://discourse.julialang.org/t/import-external-pdf-or-svg-to-makie-figure/126891 "2025-03-12T23:52:58Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![albertomercurio](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/albertomercurio/32/27051_2.png) [@albertomercurio](https://discourse.julialang.org/u/albertomercurio)
#### Post date: [March 12, 2025, 11:52pm UTC](https://discourse.julialang.org/t/import-external-pdf-or-svg-to-makie-figure/126891/1 "2025-03-12T23:52:59Z")

</div>

Hello,

I would like to create a simple figure with Makie.jl, where on the left I have an `Axis`, and on the right an external PDF. I haven’t found anything around, except the MakieTeX.jl package, where I can import a PDF or SVG with

```julia
SVGDocument(read("file.svg", String))
PDFDocument(read("file.pdf", String))

```

However this is specific for latex files, while I just need to import a PDF.

Are there simpler ways?

---

<div class="post-metadata">

### Author: ![aryavorskiy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aryavorskiy/32/43466_2.png) [@aryavorskiy](https://discourse.julialang.org/u/aryavorskiy)
#### Post date: [March 13, 2025, 12:20am UTC](https://discourse.julialang.org/t/import-external-pdf-or-svg-to-makie-figure/126891/2 "2025-03-13T00:20:35Z")

</div>

Hello!

Try loading your PDF file with FileIO.jl and then plot it as an `image`:

```julia
using FileIO, CairoMakie # You'll need to install ImageMagick.jl package, too
pdf_file = load("path/to/your.pdf")

fig = Figure()
scatter(fig[1, 1], 1:10, rand(10))
img_ax, = image(fig[1, 2], pdf_file', axis = (aspect = DataAspect(), yreversed = true))
hidedecorations!(img_ax)
fig

```

---

<div class="post-metadata">

### Author: ![albertomercurio](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/albertomercurio/32/27051_2.png) [@albertomercurio](https://discourse.julialang.org/u/albertomercurio)
#### Post date: [March 13, 2025, 12:35am UTC](https://discourse.julialang.org/t/import-external-pdf-or-svg-to-makie-figure/126891/3 "2025-03-13T00:35:58Z")

</div>

I have installed imagemagick with `brew update && brew install imagemagick` but I still get

```julia
Error encountered while load File{DataFormat{:PDF}, String}("figures/header.pdf").

Fatal error:
ERROR: ArgumentError: Package ImageMagick [6218d12a-5da1-5696-b52f-db25d2ecc6d1] is required but does not seem to be installed:
 - Run `Pkg.instantiate()` to install all recorded dependencies.

```

---

<div class="post-metadata">

### Author: ![aryavorskiy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aryavorskiy/32/43466_2.png) [@aryavorskiy](https://discourse.julialang.org/u/aryavorskiy)
#### Post date: [March 13, 2025, 12:37am UTC](https://discourse.julialang.org/t/import-external-pdf-or-svg-to-makie-figure/126891/4 "2025-03-13T00:37:47Z")

</div>

Oh, probably my bad wording. You need ImageMagick.jl, like, the Julia package.

```julia
]add ImageMagick

```

---

<div class="post-metadata">

### Author: ![albertomercurio](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/albertomercurio/32/27051_2.png) [@albertomercurio](https://discourse.julialang.org/u/albertomercurio)
#### Post date: [March 13, 2025, 12:43am UTC](https://discourse.julialang.org/t/import-external-pdf-or-svg-to-makie-figure/126891/5 "2025-03-13T00:43:02Z")

</div>

Ok, it crashes now

```julia
julia> using FileIO

julia> pdf_file = load("figures/header.pdf")
Assertion failed: (string_info->signature == MagickCoreSignature), function GetStringInfoDatum, file MagickCore/string.c, line 1200.

[26859] signal 6: Abort trap: 6
in expression starting at REPL[4]:1
__pthread_kill at /usr/lib/system/libsystem_kernel.dylib (unknown line)
Allocations: 6701183 (Pool: 6700724; Big: 459); GC: 9
zsh: abort julia --project

```

---

<div class="post-metadata">

### Author: ![albertomercurio](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/albertomercurio/32/27051_2.png) [@albertomercurio](https://discourse.julialang.org/u/albertomercurio)
#### Post date: [March 13, 2025, 12:52am UTC](https://discourse.julialang.org/t/import-external-pdf-or-svg-to-makie-figure/126891/6 "2025-03-13T00:52:59Z")

</div>

Ok, with a different PDF file works. It very strange since MakieTeX is able to import the previous file.

---

<div class="post-metadata">

### Author: ![albertomercurio](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/albertomercurio/32/27051_2.png) [@albertomercurio](https://discourse.julialang.org/u/albertomercurio)
#### Post date: [March 13, 2025, 12:56am UTC](https://discourse.julialang.org/t/import-external-pdf-or-svg-to-makie-figure/126891/7 "2025-03-13T00:56:03Z")

</div>

BTW, it seems that the image is resterized, while I still need it to be a vector graphic.

---

<div class="post-metadata">

### Author: ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://discourse.julialang.org/u/jules)
#### Post date: [March 13, 2025, 7:08am UTC](https://discourse.julialang.org/t/import-external-pdf-or-svg-to-makie-figure/126891/8 "2025-03-13T07:08:16Z")

</div>

You could try if this still works [Viewer for PDF images - #35 by jules](https://discourse.julialang.org/t/viewer-for-pdf-images/95668/35)

---

<div class="post-metadata">

### Author: ![asinghvi17](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/asinghvi17/32/8272_2.png) [@asinghvi17](https://discourse.julialang.org/u/asinghvi17)
#### Post date: [March 15, 2025, 6:11pm UTC](https://discourse.julialang.org/t/import-external-pdf-or-svg-to-makie-figure/126891/9 "2025-03-15T18:11:59Z")

</div>

Why do you say that is specifically for latex files? An SVGDocument or PDFDocument in MakieTeX can work with arbitrary PDFs or SVGs…maybe that wasn’t made clear in the docs?
