web-dev-qa-db-ja.com

複数のシートでSVGをPDFに変換します

Inkscapeで作成されたSVGファイルがあります。最終的に大きなポスターを作成するために、複数のシートに印刷したいです。これらの複数のシートをPDFに変換して、任意のオペレーティングシステムから印刷できるようにする必要があります。

私が作業しているファイル:

  • SVGのサイズは840 mm x 297 mmです。 (幅x高さ)
  • 2つのA3シート(420 mm x 297 mm)でPDFを生成します。

ソリューションを自分で試してみたい場合は、 ファイルをダウンロード できます。

Inkscapeの拡張機能やスクリプト、コマンドラインツールなど、ほぼすべてのソリューションを受け入れています。変換をやり直す必要があるたびに、手動で混乱したくないだけです。

私が試したがうまくいかなかったこと:

  • inkscape-pages は、Inkscapeに複数のページのサポートを追加しますが、特定のファイルをページに分割することはサポートしません。

ラスターイメージ形式(PNGやJPGなど)でのみ機能するツールは、no-goです。

私が聞いたツールは機能するかもしれませんが、それらが機能するかどうか、およびそれらにアプローチする方法がわかりません。

更新:ダウンロードリンク を追加。

9
MadMike

pdfposterパッケージを試しましたか? From プロジェクトのウェブサイト "Pdfposterは、複数のページから構築したり、大きなメディアに印刷したりして、大きなポスターを作成するために使用できます。通常は1ページに印刷されるPDFファイル。出力は再びPDFファイルになり、ポスターを作成するために複数のページが一緒に含まれる場合があります。サイズ。」

マニュアルページから簡単な例を試してみました:pdfposter -mA3 -pA0 askUbuntu.pdf printer-pages.pdfサンプルファイル(InkscapeでPDFに変換)で、動作するようです:設定する必要がある6 A3ページ2×3グリッド。

1
ph0t0nix

印刷に使用するプリンターの最高解像度(600など)を使用して、inkscapeから直接PDFとして画像として保存できます。

その後、imagemagick(コマンド変換)を使用して、画像の上部と下部を個別に2つの異なるpdfファイルにトリミングできます。たとえば(端末で入力):

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

次に、以下を使用して個々のpdfファイルに分割できます。

pdftk filename.pdf burst

Imagemagickとpdftkが既にインストールされていると思います。

2
Harris

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
0
user.dz

ファイルを取得できなかったため(リンク切れ)、コンピューターにあるPDFで管理していました。とにかく、これは私が進めた方法です:

  • LaunchScribusUbuntu 12.04 LTS上の1.4.3
  • 「ダブルページ」と「左ページから開始」オプションを選択して新しいA3 2ページドキュメントを作成します(フランス語のScribusバージョンで作業しているため、正しい翻訳ではない可能性があります)。
  • 2ページにまたがる画像フレームを作成する
  • pDFをインポート
  • 画像サイズをフレームに合わせる
  • pDFとしてエクスポート
  • 印刷する

結果は、ここからダウンロードできるアーカイブにあります。 http://www.filedropper.com/2a3tar_1 (1.4 Mo)

発生する可能性のある問題は、デスクトッププリンターが通常持つ技術的なマージンに関連しています。

この場合、提供される2A3bis.slaファイルのようにオーバーラップする2つの画像フレームを作成できます。

0
fremo