여러 시트에서 SVG를 PDF로 변환 SVG 파일이 있습니다. 마지막으로 큰

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

내가 작업중 인 파일 :

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

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

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

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

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

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

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

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



답변

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

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


답변

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

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

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

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

pdftk filename.pdf burst

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


답변

컴퓨터에있는 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 개의 이미지 프레임을 만들 수 있습니다.


답변

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
    

    즉 : 2×1 그리드

  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