<!--
.. title: Преобразовать svg в pdf
.. slug: svg2pdf
.. date: 2026-07-12 11:40:31 UTC+03:00
.. tags: linux, misc 
.. category: 
.. link: 
.. description: 
.. type: text
-->

# Преобразовать SVG в PDF

Преобразовать *svg* файл в *pdf* можно при помощи
программы `rsvg-convert`.

Для установки её в Debian:

```
apt install librsvg2-bin
```

Для Windows всё немного сложнее, понадобится [MSYS](https://github.com/msys2/msys2-installer/releases).
В его терминале выполнить:

```
pacman -S mingw-w64-ucrt-x86_64-librsvg
```

# Обрезать PDF

## Вариант 1. pdfcropmargins

Установить можно через `pip3`:

```
pip3 install pdfCropMargins --upgrade --only-binary pymupdf
```

## Вариант 2. pdfcrop

Для обрезки pdf-файлов можно использовать `pdfcrop` из состава *TeXLive*.
Под Windows надо установить *TeXLive*, для Debian можно только часть (но зависимостей будет много):

```
apt install texlive-extra-utils
```

# Скрипт для преобразования всех SVG файлов в каталоге

## При использовании `pdfcropmargins`:

```bash
#!/bin/sh

rm -f *.pdf
for v in *.svg
do
  if [ -f "$v" ]; then
    FNAME="${v%.*}"
    rsvg-convert -f pdf -o "$FNAME.pdf" "$v"
    pdfcropmargins -p 0 -p4 0 0 0 0 -A "$FNAME.pdf"
  fi
done
```

## При использовании `pdfcrop`:

```bash
#!/bin/sh

rm -f *.pdf
for v in *.svg
do
  if [ -f "$v" ]; then
    FNAME="${v%.*}"
    rsvg-convert -f pdf -o "$FNAME.pdf" "$v"
    pdfcrop "$FNAME.pdf"
  fi
done
```

## Windows

bat-файл для Windows для преобразования одного файла:

```bat
@echo off

:: FNAME=имя файла без расширения
set FNAME=%~n1
set RSVG_PATH=C:\msys2\ucrt64\bin

%RSVG_PATH%\rsvg-convert.exe -f pdf -o %FNAME%.pdf %FNAME%.svg

pdfcropmargins -p 0 -p4 0 0 0 0 -A %FNAME%.pdf
```
