여러 시트에서 SVG를 PDF로 변환


9

Inkscape에서 생성 된 SVG 파일이 있습니다. 마지막으로 큰 포스터를 만들기 위해 여러 장에 인쇄하고 싶습니다. 여러 운영 체제에서 인쇄 할 수 있도록 이러한 여러 시트를 PDF로 변환해야합니다.

내가 작업중 인 파일 :

  • SVG의 크기는 840mm x 297mm입니다. (폭 x 높이)
  • 두 개의 A3 시트 (420mm x 297mm)로 PDF를 생성하십시오.

솔루션을 직접 시험 해보고 싶다면 파일을 다운로드 할 수 있습니다 .

Inkscape 확장 프로그램 / 스크립트 또는 명령 줄 도구 등 거의 모든 솔루션을 사용할 수 있습니다. 변환을 다시해야 할 때마다 수동으로 엉망으로 만들고 싶지 않습니다.

내가 시도했지만 작동하지 않은 것들 :

  • inkscape-pages 는 여러 페이지에 대한 지원을 Inkscape에 추가하지만 지정된 파일을 페이지로 분리 할 수는 없습니다.

PNG 또는 JPG와 같은 래스터 이미지 형식으로 만 작동하는 도구는 절대로 필요하지 않습니다 .

내가 들었던 도구는 효과가 있을지 모르지만 어디에서 어떻게 접근할지 확실하지 않은 곳 :

업데이트 : 추가 다운로드 링크를 .


이 질문을 살펴보십시오 : 포스터 인쇄 (여러 장의 종이 위에)
fret

imagemagick (명령 변환)을 사용하여 이미지의 위쪽과 아래쪽을 두 개의 다른 pdf 파일로 독립적으로자를 수 있습니다.
Harris

예를 들면 :convert filename.svg -crop 100%x50% +repage filename.pdf
해리스

@ MadMike, 현재 작업 흐름을 언급 할 수 있습니까? (즉, 당신은 어떻게 수동으로거야?)
user.dz

1
@ Sneetsher 대형 (2 x A3) SVG 파일이 있습니다. 작업하고 인쇄하기 위해 전송할 수있는 형식 (예 : PDF)으로 변환하고 싶습니다. 직장에서는 Windows 만 사용할 수 있습니다. 지금은 수동 또는 수동으로 수행하는 문제가 아니라 어떻게해야하는지에 대한 질문이 아닙니다.
MadMike

답변:


1

pdfposter패키지 를 사용해 보셨습니까 ? 에서 프로젝트의 웹 사이트 : "Pdfposter 여러 페이지에서 구축 및 / 또는 대형 미디어에 인쇄하여 큰 포스터를 만들 수 있습니다 그것은 일반적으로 한 페이지에 인쇄, 입력으로 PDF 파일을 예상 출력은 다시입니다.. PDF 파일, 여러 페이지를 함께 포함하여 포스터를 만들 수 있습니다. 원하는 크기를 얻기 위해 입력 페이지의 크기가 조정됩니다. "

매뉴얼 페이지에서 간단한 예제를 시도했습니다. pdfposter -mA3 -pA0 askUbuntu.pdf printer-pages.pdf샘플 파일 (잉크 스케이프에서 PDF로 변환)과 함께 작동합니다 .2 × 3 격자로 설정 해야하는 6 A3 페이지입니다.


거의 작동합니다. 나는 해봤 pdfposter -m a3 -p 1x2a3 askUbuntu.pdf out.pdf결과 PDF 대신 흰색 파란색 배경 (pdfposter 0.6.0)가 있습니다. 원하는 경우 직접 테스트 할 수 있습니다. 여기 에서 소스 PDF를 다운로드하고 변환을 반복하십시오. 같은 결과가 있습니까?
MadMike

@ MadMike : 나는 당신의 PDF와 같은 파란색 배경을 얻습니다 (그러나 흰색은 내 것과 같습니다). Inkscape에서 '다른 이름으로 저장'을 사용하여 PDF를 작성 했습니까? 나는 당신의 PDF에서 텍스트를 선택할 수 없지만, 나는 내에서 선택할 수 있음을 알았습니다. PDF 내보내기 옵션에서 '텍스트를 경로로 변환'옵션을 선택하면을 사용한 후와 동일한 파란색 배경이 나타납니다 pdfposter. 완전성을 위해 : 같은 버전 pdfposter과 Inkscape 버전 0.48.4가 있습니다.
ph0t0nix

up. 완벽하게 작동합니다. PDF로 저장하는 동안 텍스트를 경로로 변환 하지 않으면 차이가 있습니다. 이제 글꼴 포함이 프린터에 충분하기를 바랍니다. ;)
MadMike

감사합니다, pdfposter도 저를 위해 일했습니다. 공식 우분투 저장소 (pdfposter 0.6.0-2)의 색상이 흑백으로 바뀌기 때문에 개발 버전 ( gitlab.com/pdftools/pdfposter )을 가져와야했습니다.
Michal Fapso

2

인쇄에 사용하려는 프린터의 최대 해상도 (dpi) (600)를 사용하여 inkscape에서 이미지를 pdf로 직접 저장할 수 있습니다.

그런 다음 imagemagick (명령 변환)을 사용하여 이미지의 위쪽과 아래쪽을 두 개의 다른 pdf 파일로 독립적으로자를 수 있습니다. 예를 들어 (터미널에 입력) :

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

그런 다음 다음을 사용하여 개별 pdf 파일로 분할 할 수 있습니다.

pdftk filename.pdf burst

imagemagick 및 pdftk가 이미 설치되어 있다고 가정합니다.


이미지가 래스터 화되는 것을 피하기 위해 다음 옵션을 시도 할 수도 있습니다.-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.pdf49x35mm 크기의 래스터 화 된 PDF 파일을 얻습니다
MadMike

이것은 래스터 화 된 pdf를 제공합니까?convert -density 90 askUbuntu.svg -crop 50%x100% +repage -trim -background black askUbuntu.pdf
Harris Harris

내가 알고있는 한 imagemagick은 벡터 그래픽을 처리 할 수 ​​없다. 무엇을하든 출력은 항상 래스터 화 된 이미지가됩니다.
Glutanimate

그들의 웹 사이트에서 그들은 imagemagick이 inkscape 또는 rsvg-convert를 사용하여 svg 파일을 처리한다고 말합니다.
해리스

0

컴퓨터에있는 PDF로 파일을 관리 할 수 ​​없었습니다 (깨진 링크). 어쨌든, 이것은 내가 진행 한 방법입니다.

  • Scribus 시작 ( Ubuntu 12.04 LTS의 1.4.3 )
  • "더블 페이지"및 "왼쪽 페이지에서 시작"옵션이 선택된 새 A3 2 페이지 문서 만들기 (프랑스어 Scribus 버전에서 작업 할 때 올바른 번역이 아닐 수도 있음)
  • 두 페이지에 이미지 프레임을 만듭니다
  • PDF 가져 오기
  • 프레임에 맞게 이미지 크기 설정
  • PDF로 내보내기
  • 그것을 인쇄

결과는 다음 위치에서 다운로드 할 수있는 아카이브에 있습니다. http://www.filedropper.com/2a3tar_1 (1.4 Mo)

발생할 수있는 문제는 일반적으로 데스크탑 프린터의 기술적 여백과 관련이 있습니다.

이 경우 제공된 2A3bis.sla 파일 과 같이 겹치는 2 개의 이미지 프레임을 만들 수 있습니다.


다운로드 링크를 업데이트했습니다.
MadMike

0

SVG는 XML이며이 Python 스크립트를 사용하여 슬라이스를 생성 할 수 있습니다. 실제로 슬라이스하지는 않지만 다른 값을 가진 동일한 입력 파일 사본을 사용 viewBox하여 대상 영역 만 표시합니다.

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. 슬라이스 생성

    python svg_slice.py 2 1 askUbuntu.svg
    

    즉 : 2x1 그리드

  2. 그런 다음 Inkscape를 사용하여 각 슬라이스 / 셀에 대한 PDF를 내 보냅니다.

    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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.