Konversi SVG ke PDF di beberapa lembar


9

Saya memiliki file SVG yang dibuat di Inkscape. Saya ingin mencetaknya di beberapa lembar untuk akhirnya membentuk poster besar. Saya perlu beberapa lembar ini dikonversi ke PDF sehingga saya dapat mencetaknya dari sistem operasi apa pun.

File yang saya kerjakan:

  • SVG memiliki ukuran 840 mm x 297 mm. (lebar x tinggi)
  • Hasilkan PDF dengan dua lembar A3 (420 mm x 297 mm).

Anda dapat mengunduh file jika Anda ingin mencoba sendiri solusinya.

Saya terbuka untuk hampir semua solusi, baik itu ekstensi / skrip Inkscape atau alat baris perintah. Saya hanya tidak ingin dipusingkan secara manual setiap kali saya harus melakukan konversi ulang.

Hal yang sudah saya coba dan tidak berhasil:

  • inkscape-pages menambahkan dukungan untuk beberapa halaman ke Inkscape, tetapi tidak ada dukungan untuk memisahkan file yang diberikan ke halaman.

Alat yang hanya akan berfungsi dengan format gambar raster (seperti PNG atau JPG) tidak boleh digunakan :

Alat-alat yang pernah saya dengar mungkin bisa digunakan tetapi di mana saya tidak yakin apakah mereka mau dan bagaimana cara mendekati mereka:

Pembaruan: Menambahkan tautan unduhan .



Anda dapat menggunakan imagemagick (konversi perintah) untuk memotong bagian atas dan bawah gambar secara terpisah menjadi dua file pdf yang berbeda.
Harris

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

@ MadMike, Bisakah Anda menyebutkan alur kerja Anda saat ini? (yaitu. Bagaimana Anda melakukannya secara manual?)
user.dz

1
@Sneetsher Saya memiliki file SVG besar (2 x A3). Saya ingin mengonversinya dalam format (seperti PDF) yang dapat saya transfer untuk bekerja dan mencetaknya dari sana. Di tempat kerja saya hanya akan memiliki Windows yang tersedia. Sekarang ini bukan masalah melakukannya secara manual atau tidak, tetapi bagaimana melakukannya sama sekali.
MadMike

Jawaban:


1

Sudahkah Anda mencoba pdfposterpaketnya? Dari situs web proyek : "Pdfposter dapat digunakan untuk membuat poster besar dengan membangunnya dari beberapa halaman dan / atau mencetaknya di media besar. Diharapkan sebagai input file PDF, biasanya mencetak pada satu halaman. Outputnya sekali lagi adalah File PDF, mungkin berisi beberapa halaman bersama-sama membangun poster. Halaman input akan diskalakan untuk mendapatkan ukuran yang diinginkan. "

Saya mencoba contoh cepat dari halaman manual: pdfposter -mA3 -pA0 askUbuntu.pdf printer-pages.pdfdengan file sampel Anda (yang saya konversi ke PDF di Inkscape), dan sepertinya berfungsi: 6 halaman A3 yang perlu diatur dalam kotak 2 × 3.


Hampir berhasil. Saya sudah mencoba pdfposter -m a3 -p 1x2a3 askUbuntu.pdf out.pdfPDF yang dihasilkan memiliki latar belakang biru (pdfposter 0.6.0) bukan putih. Anda dapat mengujinya sendiri jika Anda mau. Silakan unduh sumber PDF di sini dan ulangi konversi. Apakah Anda memiliki hasil yang sama?
MadMike

@ MadMike: Saya mendapatkan latar belakang biru yang sama dengan PDF Anda (tetapi yang putih dengan milik saya). Apakah Anda juga menggunakan 'Simpan sebagai' di Inkscape untuk membuat PDF? Saya perhatikan bahwa dalam PDF Anda, saya tidak dapat memilih teks, sedangkan saya dapat di teks saya. Jika saya memilih opsi 'convert text to paths' dalam opsi ekspor PDF saya mendapatkan latar belakang biru yang sama seperti yang Anda lakukan setelah menggunakan pdfposter. Untuk kelengkapan: Saya memiliki versi yang sama pdfposter, dan versi 0.48.4 dari Inkscape.
ph0t0nix

Jup. Bekerja dengan sempurna. Tidak mengonversi teks menjadi jalur saat menyimpan ke PDF membuat perbedaan. Sekarang saya berharap font embedding cukup baik untuk printer. ;)
MadMike

Terima kasih, pdfposter juga bekerja untuk saya. Saya hanya harus mendapatkan versi pengembangannya ( gitlab.com/pdftools/pdfposter ), karena versi dari repositori resmi Ubuntu (pdfposter 0.6.0-2) membalikkan warna hitam dan putih.
Michal Fapso

2

Anda dapat menyimpan gambar sebagai pdf dari inkscape secara langsung menggunakan resolusi tertinggi (dpi), misalnya 600, dari printer yang Anda rencanakan untuk digunakan untuk pencetakan.

Setelah itu, Anda dapat menggunakan imagemagick (konversi perintah) untuk memotong bagian atas dan bawah gambar secara terpisah menjadi dua file pdf yang berbeda. Misalnya (diketik pada terminal):

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

Anda kemudian dapat membaginya menjadi file pdf individu menggunakan:

pdftk filename.pdf burst

Saya kira imagemagick dan pdftk sudah diinstal.


Anda juga dapat mencoba opsi berikut untuk menghindari rasterisasi gambar:-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.pdfSaya mendapatkan pdf raster dengan ukuran 49x35mm (kecil)
MadMike

Apakah ini memberi Anda pdf raster:convert -density 90 askUbuntu.svg -crop 50%x100% +repage -trim -background black askUbuntu.pdf
Harris

@ Harris sejauh yang saya tahu imagemagick tidak dapat menangani grafik vektor. Apa pun yang Anda lakukan, hasilnya akan selalu berupa gambar raster.
Glutanimate

Di situs web mereka, mereka mengatakan bahwa imagemagick menggunakan inkscape atau rsvg-convert untuk menangani file svg.
Harris

0

karena saya tidak bisa mendapatkan file Anda (tautan rusak) saya berhasil dengan PDF yang saya punya di komputer saya. Bagaimanapun, ini adalah bagaimana saya melanjutkan:

  • Luncurkan Scribus ( 1.4.3 di Ubuntu 12.04 LTS )
  • buat dokumen A3 2 halaman baru dengan opsi "Double Page" dan "Starting on left page" dipilih (mungkin bukan terjemahan yang tepat karena saya sedang mengerjakan versi French Scribus).
  • buat bingkai gambar di atas dua halaman
  • impor PDF
  • atur ukuran gambar sesuai dengan bingkai
  • ekspor sebagai PDF
  • cetak ini

Hasilnya dalam arsip yang dapat Anda unduh di sini: http://www.filedropper.com/2a3tar_1 (1,4 Mo)

Masalah yang dapat terjadi terkait dengan margin teknis yang biasanya dimiliki printer desktop.

Dalam hal ini, Anda dapat membuat 2 bingkai gambar yang tumpang tindih seperti pada file 2A3bis.sla yang disediakan.


Saya telah memperbarui tautan unduhan.
MadMike

0

SVG adalah XML, Anda dapat menggunakan skrip python ini untuk menghasilkan irisan. Sebenarnya, tidak mengirisnya, tetapi menggunakan salinan file input yang sama dengan nilai yang berbeda viewBoxuntuk hanya menampilkan area target.

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. Buat irisan

    python svg_slice.py 2 1 askUbuntu.svg
    

    yaitu: kotak 2x1

  2. Kemudian gunakan Inkscape untuk mengekspor PDF untuk setiap slice / sel

    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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.