Convertir SVG en PDF sur plusieurs feuilles


9

J'ai un fichier SVG créé dans Inkscape. Je veux l'imprimer sur plusieurs feuilles pour enfin former une grande affiche. J'ai besoin de ces multiples feuilles converties en PDF pour pouvoir l'imprimer à partir de n'importe quel système d'exploitation.

Le fichier avec lequel je travaille:

  • SVG a une taille de 840 mm x 297 mm. (largeur x hauteur)
  • Générez un PDF avec deux feuilles A3 (420 mm x 297 mm).

Vous pouvez télécharger le fichier si vous souhaitez tester vous-même votre solution.

Je suis ouvert à presque toutes les solutions, qu'il s'agisse d'extensions / scripts Inkscape ou d'outils de ligne de commande. Je ne veux tout simplement pas jouer manuellement chaque fois que je dois refaire la conversion.

Choses que j'ai essayées et qui n'ont pas fonctionné:

  • inkscape-pages ajoute la prise en charge de plusieurs pages à Inkscape, mais aucune prise en charge pour séparer un fichier donné des pages.

Les outils qui ne fonctionneront qu'avec le format d'image raster (comme PNG ou JPG) sont à proscrire :

J'ai entendu des outils qui pourraient fonctionner mais où je ne sais pas s'ils le feront et comment les aborder:

Mise à jour: lien de téléchargement ajouté .



Vous pouvez utiliser imagemagick (commande convertir) pour rogner les parties supérieure et inférieure de l'image indépendamment dans deux fichiers pdf différents.
Harris

Par exemple:convert filename.svg -crop 100%x50% +repage filename.pdf
Harris

@MadMike, pourriez-vous mentionner votre flux de travail actuel? (c'est-à-dire comment le faites-vous manuellement?)
user.dz

1
@Sneetsher J'ai un fichier SVG surdimensionné (2 x A3). Je voudrais le convertir dans un format (comme PDF) que je peux transporter pour travailler et l'imprimer à partir de là. Au travail, je ne disposerai que de Windows. Pour l'instant, il ne s'agit pas de le faire manuellement ou non, mais de savoir comment le faire.
MadMike

Réponses:


1

Avez-vous essayé le pdfposterpackage? À partir du site Web du projet : "Pdfposter peut être utilisé pour créer une grande affiche en la construisant à partir de plusieurs pages et / ou en l'imprimant sur de grands supports. Il attend en entrée un fichier PDF, normalement en imprimant sur une seule page. La sortie est à nouveau une Fichier PDF, contenant peut-être plusieurs pages pour créer l'affiche. La page d'entrée sera mise à l'échelle pour obtenir la taille souhaitée. "

J'ai essayé un exemple rapide de la page de manuel: pdfposter -mA3 -pA0 askUbuntu.pdf printer-pages.pdfavec votre exemple de fichier (que j'ai converti en PDF dans Inkscape), et cela semble fonctionner: 6 pages A3 qui doivent être définies dans une grille 2 × 3.


Fonctionne presque. J'ai essayé pdfposter -m a3 -p 1x2a3 askUbuntu.pdf out.pdfle PDF résultant a un fond bleu (pdfposter 0.6.0) au lieu de blanc. Vous pouvez le tester vous-même si vous le souhaitez. Téléchargez le PDF source ici et répétez la conversion, s'il vous plaît. Avez-vous le même résultat?
MadMike

@MadMike: J'ai le même fond bleu avec votre PDF (mais un blanc avec le mien). Avez-vous également utilisé «Enregistrer sous» dans Inkscape pour créer le PDF? J'ai remarqué que dans votre PDF je ne peux pas sélectionner le texte, alors que je peux dans le mien. Si je sélectionne l'option «convertir les textes en chemins» dans les options d'exportation PDF, j'obtiens le même arrière-plan bleu que vous après l'utilisation pdfposter. Pour être complet: j'ai la même version pdfposteret la version 0.48.4 d'Inkscape.
ph0t0nix

Jup. Marche parfaitement. Ne pas convertir le texte en chemin lors de l'enregistrement au format PDF fait la différence. J'espère maintenant que l'intégration de la police est assez bonne pour l'imprimante. ;)
MadMike

Merci, le pdfposter a aussi fonctionné pour moi. Je devais juste obtenir sa version de développement ( gitlab.com/pdftools/pdfposter ), car celle du référentiel officiel d'Ubuntu (pdfposter 0.6.0-2) a inversé les couleurs noir et blanc.
Michal Fapso

2

Vous pouvez enregistrer en tant qu'image au format PDF à partir d'Inkscape directement en utilisant la résolution la plus élevée (dpi), disons 600, de l'imprimante que vous prévoyez d'utiliser pour l'impression.

Ensuite, vous pouvez utiliser imagemagick (commande convertir) pour rogner les parties supérieure et inférieure de l'image indépendamment dans deux fichiers pdf différents. Par exemple (tapé sur un terminal):

convert askUbuntu.pdf -crop 100%x50% +repage askUbuntuSplit.pdf

Vous pouvez ensuite le diviser en fichiers pdf individuels en utilisant:

pdftk filename.pdf burst

Je suppose que imagemagick et pdftk sont déjà installés.


Vous pouvez également essayer les options suivantes pour éviter que l'image ne soit pixellisée:-density 600 -define psd:fit-page=2338x -resize 2338x
Harris

convert banner_eingang5.svg -density 600 -define psd:fit-page=2338x -resize 2338x -crop 50%x100% +repage filename.pdfJ'obtiens un pdf pixellisé avec une taille de 49x35mm (beaucoup trop petit)
MadMike

Est-ce que cela vous donne un pdf tramé:convert -density 90 askUbuntu.svg -crop 50%x100% +repage -trim -background black askUbuntu.pdf
Harris

@Harris autant que je sache, imagemagick ne peut pas gérer les graphiques vectoriels. Quoi que vous fassiez, la sortie sera toujours une image tramée.
Glutanimate

Dans leur site Web, ils disent qu'imagemagick utilise inkscape ou rsvg-convert pour gérer les fichiers svg.
Harris

0

car je n'ai pas pu obtenir votre fichier (lien brisé), j'ai réussi avec un PDF que j'avais sur mon ordinateur. Quoi qu'il en soit, voici comment j'ai procédé:

  • Lancer Scribus ( 1.4.3 sur Ubuntu 12.04 LTS )
  • créer un nouveau document A3 de 2 pages avec les options "Double page" et "Commencer sur la page de gauche" sélectionnées (peut-être pas la bonne traduction car je travaille sur une version française de Scribus).
  • créer un cadre d'image sur les deux pages
  • importer un PDF
  • définir la taille de l'image en fonction du cadre
  • exporter au format PDF
  • imprime le

Le résultat est dans l'archive que vous pouvez télécharger ici: http://www.filedropper.com/2a3tar_1 (1,4 Mo)

Le problème qui peut se produire est lié aux marges techniques des imprimantes de bureau.

Dans ce cas, vous pouvez créer 2 cadres d'images qui se chevauchent comme dans le fichier 2A3bis.sla fourni.


J'ai mis à jour le lien de téléchargement.
MadMike

0

SVG est un XML, vous pouvez utiliser ce script python pour générer des tranches. En fait, il ne le tranche pas, mais utilise la même copie du fichier d'entrée avec différentes valeurs de viewBoxpour afficher uniquement la zone cible.

svg_slice.py

#!/usr/bin/env python

import sys, os.path
import xml.etree.ElementTree as ET

fin=sys.argv[-1]
hsplit=int(sys.argv[1])
vsplit=int(sys.argv[2])

tree = ET.parse(fin)
root = tree.getroot()

hstep=float(root.attrib['width'])/hsplit
vstep=float(root.attrib['height'])/vsplit

root.attrib['width']=str(hstep)
root.attrib['height']=str(vstep)

for i in range(hsplit):
    for j in range(vsplit):
        root.attrib['viewBox']='%.4f %.4f %.4f %.4f' % (i*hstep, j*vstep, hstep, vstep)
        tree.write('cell_%i-%i_%s' % (i,j,os.path.basename(fin)))
  1. Générer des tranches

    python svg_slice.py 2 1 askUbuntu.svg
    

    soit: grille 2x1

  2. Utilisez ensuite Inkscape pour exporter le PDF pour chaque tranche / cellule

    for i in $(ls cell_*); do inkscape $i --export-pdf=$i.pdf; done;
    

ls cell_*

cell_0-0_askUbuntu.svg      cell_1-0_askUbuntu.svg
cell_0-0_askUbuntu.svg.pdf  cell_1-0_askUbuntu.svg.pdf
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.