ไม่มีใครรู้วิธีที่ดีในการแบ่งหน้าของ pdf ลงตรงกลางเป็นสองหน้าใหม่?
เพื่อความชัดเจนฉันไม่ได้พยายามแยกหน้าเว็บที่มีอยู่แล้วออกจาก pdf ฉันกำลังพยายามสร้างหน้าใหม่สองหน้าจากหน้าเดียวที่มีอยู่
ไม่มีใครรู้วิธีที่ดีในการแบ่งหน้าของ pdf ลงตรงกลางเป็นสองหน้าใหม่?
เพื่อความชัดเจนฉันไม่ได้พยายามแยกหน้าเว็บที่มีอยู่แล้วออกจาก pdf ฉันกำลังพยายามสร้างหน้าใหม่สองหน้าจากหน้าเดียวที่มีอยู่
คำตอบ:
ลองบริส
มันช่วยให้คุณสามารถแบ่งแต่ละหน้าเป็นหน้าย่อยได้มากเท่าที่คุณต้องการโดยการกำหนดภูมิภาคด้วย GUI มันจัดกลุ่มหน้าที่คล้ายกันทั้งหมดเป็นกลุ่มสำหรับคุณเพื่อให้คุณสามารถกำหนดภูมิภาคสำหรับกลุ่มนั้นหนึ่งครั้ง
มันเป็นแพลตฟอร์มข้ามฟรีและโอเพนซอร์ส
คุณสามารถแก้ปัญหานี้ได้ด้วยความช่วยเหลือของ Ghostscript pdftk
เพียงอย่างเดียวไม่สามารถทำเช่นนั้น (เพื่อความรู้ที่ดีที่สุดของฉัน) ฉันจะให้ขั้นตอน commandline ให้คุณทำด้วยตนเอง มันจะง่ายต่อการสคริปต์นี้เป็นขั้นตอนยังมีพารามิเตอร์ที่แตกต่างกันสำหรับขนาดหน้าและหมายเลขหน้า แต่คุณบอกว่าคุณสามารถทำได้ด้วยตัวคุณเอง ;-)
... และเพื่อความสนุกของมันฉันเพิ่งทำไปไม่ได้กับไฟล์อินพุตที่มีหน้า "double-up" แต่เป็นหน้าหนึ่งที่มี "treble-ups" คุณสามารถอ่านคำตอบสำหรับกรณีนี้ในคำตอบอื่น ๆนี้
กรณีของคุณง่ายยิ่งขึ้น คุณดูเหมือนจะมีสิ่งที่คล้ายกับนี้:
+------------+------------+ ^
| | | |
| 1 | 2 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
^
fold
v
+------------+------------+ ^
| | | |
| 3 | 4 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
<---------- 842 pt -------->
คุณต้องการสร้าง 1 PDF ที่มี 4 หน้าซึ่งแต่ละอันมีขนาด 421 pt x 595 pt
ก่อนอื่นให้แยกส่วนด้านซ้ายออกจากหน้าป้อนข้อมูลแต่ละหน้า:
gs \
-o left-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [0 0]>> setpagedevice" \
-f double-page-input.pdf
พารามิเตอร์เหล่านี้ทำอะไร
ครั้งแรกที่รู้ว่าในรูปแบบไฟล์ PDF 1 นิ้ว == 72 จุด จากนั้นส่วนที่เหลือคือ:
-o ...............:
ตั้งชื่อไฟล์เอาต์พุต Implicitely -dBATCH -dNOPAUSE -dSAFER
ยังใช้-sDEVICE=pdfwrite :
เราต้องการ PDF เป็นรูปแบบผลลัพธ์-g................:
กำหนดขนาดสื่อออกเป็นพิกเซล ความละเอียดเริ่มต้นของ pdfwrite คือ 720 dpi ดังนั้นคูณด้วย 10 เพื่อรับการจับคู่สำหรับ PageOffset-c "..............:
ขอให้ Ghostscript ประมวลผลข้อมูลโค้ด PostScript ที่กำหนดไว้ก่อนไฟล์อินพุตหลัก (ซึ่งต้องติดตามด้วย-f
)<</PageOffset ....:
ชุดเลื่อนภาพหน้าบนสื่อ (แน่นอนสำหรับหน้าซ้ายการเปลี่ยนแปลงโดย[0 0]
ไม่มีผลกระทบจริง)-f ...............:
ประมวลผลไฟล์อินพุตนี้คำสั่งสุดท้ายที่ได้ผลสำเร็จใด?
อันนี้:
Output file: left-sections.pdf, page 1
+------------+ ^
| | |
| 1 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Output file: left-sections.pdf, page 2
+------------+ ^
| | |
| 3 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
ถัดไปส่วนที่ถูกต้อง:
gs \
-o right-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [-421 0]>> setpagedevice" \
-f double-page-input.pdf
ผล:
Output file: right-sections.pdf, page 1
+------------+ ^
| | |
| 2 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Output file: right-sections.pdf, page 2
+------------+ ^
| | |
| 4 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
ตอนนี้เรารวมหน้าเป็นไฟล์เดียว เราสามารถทำได้ด้วย ghostscript เช่นกัน แต่เราจะใช้pdftk
แทนเพราะเร็วกว่าสำหรับงานนี้:
pdftk \
A=right-sections.pdf \
B=left-sections.pdf \
shuffle A B \
output single-pages-output.pdf
verbose
เสร็จสิ้น นี่คือผลลัพธ์ที่ต้องการ 4 หน้าแตกต่างกันขนาด 421x595 pt
ผล:
+------------+ +------------+ +------------+ +------------+ ^
| | | | | | | | |
| 1 | | 2 | | 3 | | 4 | |
| | | | | | | | 595 pt
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
+------------+ +------------+ +------------+ +------------+ v
<-- 421 pt --> <-- 421 pt --> <-- 421 pt --> <-- 421 pt -->
"<</PageOffset [-421 0]>> setpagedevice"
เท่านั้น: ฉันเดาว่ามันขึ้นอยู่กับทิศทางของไฟล์ต้นฉบับ คำตอบที่ยอดเยี่ยมอย่างไรก็ตาม :)
ขอขอบคุณที่ @marttt ของพวกเขาและคำตอบใน Unix และ Linux
คุณสามารถใช้mutool
(ซึ่งเป็นส่วนหนึ่งของmupdf
):
mutool poster -x 2 input.pdf output.pdf
คุณสามารถใช้-y
หากคุณต้องการแยกแนวตั้ง
หากต้องการขยายคำตอบของ @ Kurt (เนื่องจากฉันไม่มีคะแนนชื่อเสียงเพียงพอที่จะแสดงความคิดเห็น) อันดับแรกตรวจสอบให้แน่ใจว่าขนาดที่คุณใช้นั้นไม่ได้ขึ้นอยู่กับขนาดของกล่องครอบตัดหากส่วนขยายนั้นแตกต่างจากขนาดกล่องสื่อ ขนาดเอาต์พุตขึ้นอยู่กับขนาดของ Media Box แต่ออฟเซ็ตดูเหมือนว่าจะใช้ขนาดของ Crop Box
สำหรับหน้าประตูที่มีกล่องสื่อ 20.0833 x 13.833 และกล่องครอบตัด 19.25 x 13.0 ซึ่งเหมือนกับกล่องตัดแต่งในเอกสารของฉันเพื่อแยกเป็นสองหน้าบน Ubuntu ทางซ้าย:
gs -o left.pdf -sDEVICE=pdfwrite -g7230x9960 -c "<</PageOffset [0 0]>> setpagedevice" -f gatefold.pdf
ด้านขวา:
gs -o right.pdf -sDEVICE=pdfwrite -g7230x9960 -c "<</PageOffset [-693 0]>> setpagedevice" -f gatefold.pdf
pdftk left.pdf right.pdf output final.pdf
และจากนั้นก็เย็บพวกเขาด้วย
อีกทางเลือกหนึ่งคือการตั้งค่ากล่องครอบตัดให้เหมือนกับกล่องสื่อ จากนั้นอ็อฟเซ็ตจะเป็น -723 แต่จากนั้นการครอบตัดจะต้องถูกรีเซ็ตเพื่อตัดแต่งเพื่อให้หน้าเว็บปรากฏอย่างราบรื่น มิฉะนั้นให้ตั้งค่าสื่อที่จะครอบตัด