แปลง SVG เป็น PDF บนแผ่นงานหลายแผ่น


9

ฉันมีไฟล์ SVG ที่สร้างขึ้นใน Inkscape ฉันต้องการพิมพ์ลงบนกระดาษหลายแผ่นเพื่อสร้างโปสเตอร์ขนาดใหญ่ในที่สุด ฉันต้องการแปลงหลายแผ่นเป็น PDF ดังนั้นฉันจึงสามารถพิมพ์จากระบบปฏิบัติการใดก็ได้

ไฟล์ที่ฉันทำงานด้วย:

  • SVG มีขนาด 840 มม. x 297 มม. (กว้าง x สูง)
  • สร้าง PDF ด้วยกระดาษ A3 สองแผ่น (420 มม. x 297 มม.)

คุณสามารถดาวน์โหลดไฟล์ได้หากคุณต้องการลองวิธีแก้ปัญหาด้วยตัวเอง

ฉันเปิดรับโซลูชั่นเกือบทุกประเภทไม่ว่าจะเป็น Inkscape Extensions / สคริปต์หรือเครื่องมือบรรทัดคำสั่ง ฉันไม่ต้องการยุ่งกับตนเองทุกครั้งที่ฉันต้องแปลงอีกครั้ง

สิ่งที่ฉันได้ลองและไม่ได้ผล:

  • inkscape-pagesเพิ่มการรองรับหลายหน้าไปยัง Inkscape แต่ไม่รองรับการแยกไฟล์ที่กำหนดให้กับหน้า

เครื่องมือซึ่งจะทำงานเฉพาะกับรูปแบบภาพแรสเตอร์ (เช่น PNG หรือ JPG) เป็นไม่มีไป :

เครื่องมือที่ฉันได้ยินมาว่าอาจใช้งานได้ แต่ฉันไม่แน่ใจว่าจะใช้งานอย่างไรและจะเข้าใกล้ได้อย่างไร:

ปรับปรุง:เพิ่มลิงค์ดาวน์โหลด



คุณสามารถใช้ imagemagick (การแปลงคำสั่ง) เพื่อครอบตัดส่วนบนและส่วนล่างของภาพแยกออกเป็นสองไฟล์ pdf ที่แตกต่างกัน
แฮร์ริส

ตัวอย่างเช่น:convert filename.svg -crop 100%x50% +repage filename.pdf
แฮร์ริส

@MadMike คุณสามารถพูดถึงกระบวนการทำงานปัจจุบันของคุณ (เช่นคุณเป็นคนทำเองได้อย่างไร)
user.dz

1
@Sneetsher ฉันมีไฟล์ SVG ขนาดใหญ่ (2 x A3) ฉันต้องการแปลงเป็นรูปแบบ (เช่น PDF) ที่ฉันสามารถขนส่งไปทำงานและพิมพ์จากที่นั่น ที่ทำงานฉันจะใช้ Windows ได้เท่านั้น ตอนนี้ไม่ใช่คำถามของการทำด้วยตนเองหรือไม่ แต่วิธีการทำมันเลย
MadMike

คำตอบ:


1

คุณได้ลองpdfposterแพ็คเกจหรือยัง จากเว็บไซต์ของโครงการ : "Pdfposter สามารถใช้ในการสร้างโปสเตอร์ขนาดใหญ่โดยการสร้างจากหลาย ๆ หน้าและ / หรือพิมพ์บนสื่อขนาดใหญ่โดยคาดว่าจะใส่ไฟล์ PDF โดยปกติแล้วพิมพ์บนหน้าเดียว ไฟล์ PDF อาจมีหลายหน้ารวมกันสร้างโปสเตอร์หน้าอินพุตจะถูกปรับสัดส่วนเพื่อให้ได้ขนาดที่ต้องการ "

ฉันลองตัวอย่างอย่างรวดเร็วจาก man page: pdfposter -mA3 -pA0 askUbuntu.pdf printer-pages.pdfด้วยไฟล์ตัวอย่างของคุณ (ซึ่งฉันแปลงเป็น PDF ใน Inkscape) และดูเหมือนว่าจะทำงาน: 6 หน้า A3 ที่ต้องตั้งค่าในตาราง 2 × 3


เกือบจะได้ผล ฉันลองpdfposter -m a3 -p 1x2a3 askUbuntu.pdf out.pdfPDF ที่เป็นผลลัพธ์มีพื้นหลังสีน้ำเงิน (pdfposter 0.6.0) แทนที่จะเป็นสีขาว คุณสามารถทดสอบด้วยตัวเองถ้าคุณต้องการ ดาวน์โหลดPDF ต้นฉบับที่นี่และทำซ้ำการแปลงโปรด คุณมีผลลัพธ์เหมือนกันหรือไม่?
MadMike

@MadMike: ฉันได้รับพื้นหลังสีฟ้าเหมือนกันกับ PDF ของคุณ (แต่สีขาวมีของฉัน) คุณใช้ 'บันทึกเป็น' ใน Inkscape เพื่อสร้าง PDF หรือไม่ ฉันสังเกตเห็นว่าใน PDF ของคุณฉันไม่สามารถเลือกข้อความได้ในขณะที่ฉันสามารถทำได้ ถ้าผมเลือก 'แปลงข้อความไปยังเส้นทาง' ตัวเลือกตัวเลือกการส่งออกรูปแบบไฟล์ PDF pdfposterที่ฉันได้รับพื้นหลังสีฟ้าเช่นเดียวกับที่คุณทำหลังจากการใช้ เพื่อความสมบูรณ์: ฉันมีรุ่นเดียวกันpdfposterและรุ่น 0.48.4 ของ Inkscape
ph0t0nix

Jup ทำงานได้อย่างสมบูรณ์แบบ ไม่แปลงข้อความเป็นเส้นทางในขณะที่บันทึกเป็น PDF สร้างความแตกต่าง ตอนนี้ฉันหวังว่าการฝังแบบอักษรจะดีพอสำหรับเครื่องพิมพ์ ;)
MadMike

ขอบคุณ pdfposter ก็ใช้ได้เช่นกัน ฉันเพิ่งจะได้รับรุ่นพัฒนา ( gitlab.com/pdftools/pdfposter ) เพราะหนึ่งในแหล่งเก็บข้อมูลอย่างเป็นทางการของ Ubuntu (pdfposter 0.6.0-2) กลับเป็นสีขาวดำ
Michal Fapso

2

คุณสามารถบันทึกเป็นรูปภาพในรูปแบบ pdf จาก inkscape โดยตรงโดยใช้ความละเอียดสูงสุด (dpi), ประมาณ 600 ของเครื่องพิมพ์ที่คุณวางแผนจะใช้สำหรับการพิมพ์

หลังจากนั้นคุณสามารถใช้ 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
แฮร์ริส

convert banner_eingang5.svg -density 600 -define psd:fit-page=2338x -resize 2338x -crop 50%x100% +repage filename.pdfฉันได้รับrasterizedไฟล์ PDF ที่มีขนาด 49x35mm (ที่วิธีการเล็ก)
MadMike

สิ่งนี้จะให้ PDF แบบแรสเตอร์ให้คุณหรือไม่:convert -density 90 askUbuntu.svg -crop 50%x100% +repage -trim -background black askUbuntu.pdf
แฮร์ริส

@ แฮร์ริสเท่าที่ฉันรู้ imagemagick ไม่สามารถจัดการกับกราฟิกแบบเวกเตอร์ ไม่ว่าคุณจะทำอะไรผลลัพธ์ที่ได้จะเป็นภาพแรสเตอร์
Glutanimate

ในเว็บไซต์ของพวกเขาพวกเขาบอกว่า imagemagick ใช้ inkscape หรือ rsvg-convert เพื่อจัดการไฟล์ svg
แฮร์ริส

0

เนื่องจากฉันไม่สามารถรับไฟล์ของคุณได้ (ลิงก์เสีย) ฉันจัดการด้วย PDF ที่มีบนคอมพิวเตอร์ของฉัน อย่างไรก็ตามนี่คือวิธีที่ฉันดำเนินการ:

  • เรียกใช้Scribus ( 1.4.3 บน Ubuntu 12.04 LTS )
  • สร้างเอกสาร A3 2 หน้าใหม่พร้อมตัวเลือก "หน้าคู่" และ "เริ่มต้นที่หน้าซ้าย" (อาจไม่ใช่การแปลที่ถูกต้องเนื่องจากฉันกำลังทำงานในเวอร์ชันภาษาฝรั่งเศส Scribus)
  • สร้างกรอบรูปภาพเหนือสองหน้า
  • นำเข้า PDF
  • กำหนดขนาดภาพให้พอดีกับกรอบ
  • ส่งออกเป็น PDF
  • พิมพ์มัน

ผลลัพธ์อยู่ในไฟล์เก็บถาวรที่คุณสามารถดาวน์โหลดได้ที่นี่: http://www.filedropper.com/2a3tar_1 (1.4 Mo)

ปัญหาที่อาจเกิดขึ้นเกี่ยวข้องกับระยะขอบด้านเทคนิคเครื่องพิมพ์เดสก์ท็อปมักจะมี

ในกรณีนี้คุณสามารถสร้างเฟรมภาพ 2 ภาพซ้อนทับกันเช่นในไฟล์2A3bis.sla ที่ให้ไว้


ฉันได้อัปเดตลิงค์ดาวน์โหลดแล้ว
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
    

    ie: 2x1 grid

  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.