Chuyển đổi SVG sang PDF trên một số tờ


9

Tôi có một tệp SVG được tạo trong Inkscape. Tôi muốn in nó trên nhiều tờ để cuối cùng tạo thành một poster lớn. Tôi cần nhiều tờ này được chuyển đổi thành PDF để tôi có thể in nó từ bất kỳ hệ điều hành nào.

Tệp tôi đang làm việc với:

  • SVG có kích thước là 840 mm x 297 mm. (chiều rộng x chiều cao)
  • Tạo một tệp PDF với hai tờ A3 (420 mm x 297 mm).

Bạn có thể tải xuống tệp nếu bạn muốn tự mình thử giải pháp.

Tôi mở hầu hết mọi giải pháp, có thể là phần mở rộng / tập lệnh Inkscape hoặc công cụ dòng lệnh. Tôi chỉ không muốn làm hỏng thủ công mỗi lần tôi phải thực hiện lại chuyển đổi.

Những điều tôi đã thử và không hoạt động:

  • inkscape-page thêm hỗ trợ cho nhiều trang vào Inkscape, nhưng không hỗ trợ để tách một tệp đã cho thành các trang.

Các công cụ sẽ chỉ hoạt động với định dạng hình ảnh raster (như PNG hoặc JPG) là không nên :

Các công cụ tôi đã nghe nói có thể hoạt động nhưng tôi không chắc chắn liệu chúng có và cách tiếp cận chúng không:

Cập nhật: Đã thêm liên kết tải xuống .


Có một cái nhìn về câu hỏi này: In một poster (trên một vài tờ giấy)
băn khoăn

Bạn có thể sử dụng hình ảnh (chuyển đổi lệnh) để cắt các phần trên và dưới của hình ảnh một cách độc lập thành hai tệp pdf khác nhau.
Harris

Ví dụ:convert filename.svg -crop 100%x50% +repage filename.pdf
Harris

@MadMike, bạn có thể đề cập đến quy trình làm việc hiện tại của bạn không? (tức là bạn đang thực hiện thủ công như thế nào?)
user.dz

1
@Sneetsher Tôi có tệp SVG quá khổ (2 x A3). Tôi muốn chuyển đổi nó theo định dạng (như PDF) mà tôi có thể vận chuyển để làm việc và in nó từ đó. Trong công việc tôi sẽ chỉ có sẵn Windows. Ngay bây giờ không phải là câu hỏi làm bằng tay hay không, mà là làm thế nào để làm điều đó.
MadMike

Câu trả lời:


1

Bạn đã thử pdfpostergói chưa? Từ trang web của dự án : "Pdfposter có thể được sử dụng để tạo một poster lớn bằng cách xây dựng nó từ nhiều trang và / hoặc in nó trên phương tiện truyền thông lớn. Nó dự kiến ​​sẽ nhập một tệp PDF, thường in trên một trang. Tệp PDF, có thể chứa nhiều trang cùng nhau xây dựng poster. Trang đầu vào sẽ được thu nhỏ để có được kích thước mong muốn. "

Tôi đã thử một ví dụ nhanh từ trang man: pdfposter -mA3 -pA0 askUbuntu.pdf printer-pages.pdfvới tệp mẫu của bạn (mà tôi đã chuyển đổi thành PDF trong Inkscape) và có vẻ như nó hoạt động: 6 trang A3 cần được đặt trong lưới 2 × 3.


Hầu như hoạt động. Tôi đã thử pdfposter -m a3 -p 1x2a3 askUbuntu.pdf out.pdfbản PDF kết quả có nền màu xanh lam (pdfposter 0.6.0) thay vì màu trắng. Bạn có thể tự kiểm tra nếu bạn muốn. Tải xuống PDF nguồn ở đây và lặp lại chuyển đổi, xin vui lòng. Bạn có kết quả tương tự?
madmike

@MadMike: Tôi nhận được cùng một nền màu xanh với tệp PDF của bạn (nhưng một nền trắng với của tôi). Bạn cũng đã sử dụng 'Save as' trong Inkscape để tạo PDF? Tôi nhận thấy rằng trong PDF của bạn, tôi không thể chọn văn bản, trong khi tôi có thể trong văn bản của tôi. Nếu tôi chọn tùy chọn 'chuyển đổi văn bản thành đường dẫn' trong tùy chọn xuất PDF, tôi sẽ có được nền màu xanh giống như bạn làm sau khi sử dụng pdfposter. Để hoàn thiện: Tôi có cùng phiên bản pdfpostervà phiên bản 0.48.4 của Inkscape.
ph0t0nix

Jup. Hoạt động hoàn hảo. Không chuyển đổi văn bản thành đường dẫn trong khi lưu vào PDF sẽ tạo ra sự khác biệt. Bây giờ tôi hy vọng việc nhúng phông chữ là đủ tốt cho máy in. ;)
MadMike

Cảm ơn, pdfposter cũng làm việc cho tôi. Tôi chỉ cần có phiên bản phát triển của nó ( gitlab.com/pdftools/pdfposter ), vì phiên bản từ kho lưu trữ Ubuntu chính thức (pdfposter 0.6.0-2) đảo ngược màu đen và trắng.
Michal Fapso

2

Bạn có thể lưu dưới dạng hình ảnh dưới dạng pdf từ inkscape trực tiếp bằng độ phân giải cao nhất (dpi), giả sử là 600, của máy in bạn định sử dụng để in.

Sau đó, bạn có thể sử dụng hình ảnh (chuyển đổi lệnh) để cắt các phần trên và dưới của hình ảnh một cách độc lập thành hai tệp pdf khác nhau. Ví dụ: (gõ trên thiết bị đầu cuối):

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

Sau đó, bạn có thể chia nó thành các tệp pdf riêng lẻ bằng cách sử dụng:

pdftk filename.pdf burst

Tôi đoán là fantemagick và pdftk đã được cài đặt.


Bạn cũng có thể thử các tùy chọn sau để tránh hình ảnh bị raster hóa:-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.pdfTôi nhận được bản pdf rasterized với kích thước 49x35mm (cách nhỏ)
MadMike

Điều này có cung cấp cho bạn bản pdf rasterized không:convert -density 90 askUbuntu.svg -crop 50%x100% +repage -trim -background black askUbuntu.pdf
Harris

@Harris theo như tôi biết là Imagemagick không thể xử lý đồ họa vector. Dù bạn làm gì, đầu ra sẽ luôn là một hình ảnh rasterized.
Glutimate

Trong trang web của họ, họ nói rằng fantemagick sử dụng inkscape hoặc rsvg-convert để xử lý các tập tin svg.
Harris

0

vì tôi không thể lấy tệp của bạn (liên kết bị hỏng) Tôi đã quản lý bằng tệp PDF tôi có trên máy tính của mình. Dù sao, đây là cách tôi tiến hành:

  • Khởi chạy Scribus ( 1.4.3 trên Ubuntu 12.04 LTS )
  • tạo tài liệu trang A3 2 mới với các tùy chọn "Trang kép" và "Bắt đầu trên trang bên trái" được chọn (có thể không phải là bản dịch đúng khi tôi đang làm việc trên phiên bản Scribus của Pháp).
  • tạo một khung hình trên hai trang
  • nhập PDF
  • Đặt kích thước hình ảnh phù hợp với khung hình
  • xuất dưới dạng PDF
  • in nó

Kết quả là trong kho lưu trữ mà bạn có thể tải xuống tại đây: http://www.filedropper.com/2a3tar_1 (1.4 Mo)

Vấn đề có thể xảy ra liên quan đến lợi nhuận kỹ thuật máy in để bàn thường có.

Trong trường hợp này, bạn có thể tạo 2 khung hình ảnh trùng nhau như trong tệp 2A3bis.sla được cung cấp.


Tôi đã cập nhật liên kết tải xuống.
MadMike

0

SVG là một XML, bạn có thể sử dụng tập lệnh python này để tạo các lát. Trên thực tế, nó không cắt nó, nhưng sử dụng cùng một bản sao của tệp đầu vào với các giá trị khác nhau viewBoxđể chỉ hiển thị vùng đích.

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. Tạo lát

    python svg_slice.py 2 1 askUbuntu.svg
    

    tức là: lưới 2x1

  2. Sau đó sử dụng Inkscape để xuất PDF cho mỗi lát / ô

    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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.