Chuyển đổi PDF 2 mặt trên mỗi trang thành 1 mặt trên mỗi trang


11

Làm cách nào tôi có thể chuyển đổi PDF với 2 mặt trên mỗi trang thành 1 mặt trên mỗi trang?


Điều này là hoàn toàn điên rồ! Có cách nào để thay đổi cài đặt trang trong PDF thành một mặt thay vì hai mặt không?
Nathan Fellman

@Nathan Fellman: Điên rồ, đúng vậy. Nhưng những điều điên rồ đôi khi mang lại cho bạn hầu hết niềm vui ;-)
Kurt Pfeifle


@SkippyleGrandGourou Tôi không thấy câu hỏi đó có liên quan như thế nào. Không phải là những câu hỏi cố gắng làm hai điều khác nhau với các trang?
Ben N

@BenN: Cả hai câu hỏi đều hỏi cách "tạo hai trang mới từ một trang hiện có" để trích dẫn trang kia. Câu trả lời được bình chọn nhiều nhất gần như là một copypasta.
Skippy le Grand Gourou

Câu trả lời:


21

OK, vấn đề đã được giải quyết với sự trợ giúp của Acrobat (phiên bản đầy đủ, không phải Reader). Nhưng phải làm gì nếu bạn không có quyền truy cập vào Acrobat? Điều này có thể được thực hiện với Ghostscript và pdftk không?

Cách giải quyết vấn đề này với sự trợ giúp của Ghostscript ...

... Và để giải trí, đừng sử dụng tệp đầu vào với các trang "nhân đôi", mà là một tệp có "treble-up". Trên thực tế, tôi đã nhận được một bản PDF như vậy ngày hôm nay qua email. Đó là một tờ rơi, được gấp lại Đề án của Leporello . Kích thước tấm là khổ A4 (842pt x 595pt) và được gấp lại và bố trí như thế này:

Front side to be printed, page 1 of PDF
+--------+--------+--------+   ^
|        |        |        |   |
|   5    |   6    |   1    |   |
|        |        |        | 595 pt
|        |        |        |   |
|        |        |        |   |
|        |        |        |   |
+--------+--------+--------+   v
         ^        ^
        fold     fold
         v        v
+--------+--------+--------+   ^
|        |        |        |   |
|   2    |   3    |   4    |   |
|        |        |        | 595 pt
|        |        |        |   |
|        |        |        |   |
|        |        |        |   |
+--------+--------+--------+   v
Back side to be printed, page 2 of PDF
<---------- 842 pt -------->

Tôi muốn tạo 1 PDF với 6 trang, mỗi trang có kích thước khác thường là 280,67pt x 595 pt.

Bước đầu tiên

Trước tiên, hãy trích xuất các phần bên trái từ mỗi trang đầu vào:

gswin32c.exe ^
    -o left-sections.pdf ^
    -sDEVICE=pdfwrite ^
    -g2807x5950 ^
    -c "<</PageOffset [0 0]>> setpagedevice" ^
    -f myflyer.pdf

Những thông số này đã làm gì?

  • -o ...............: Tên tập tin đầu ra. Ngẫu nhiên cũng sử dụng -dBATCH -dNOPAUSE -dSAFER.
  • -sDEVICE=pdfwrite : chúng tôi muốn PDF là định dạng đầu ra.
  • -g................: đặt kích thước phương tiện đầu ra bằng pixel. độ phân giải mặc định của pdfwrite là 720 dpi. Do đó nhân với 10 để có một trận đấu cho PagePackset.
  • -c "..............: yêu cầu Ghostscript xử lý đoạn mã PostScript đã cho ngay trước tệp đầu vào chính (cần phải tuân theo -f ).
  • <</PageOffset ....: thiết lập sự dịch chuyển của hình ảnh trang trên phương tiện. (Tất nhiên, đối với các trang bên trái, sự thay đổi của [0 0] không có tác dụng thực sự.)
  • -f ...............: xử lý tập tin đầu vào này.

Kết quả nào đã thực hiện lệnh cuối cùng?

Cái này:

Output file: left-sections.pdf, page 1
+--------+  ^
|        |  |
|   5    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v

Output file: right-sections.pdf, page 2
+--------+  ^
|        |  |
|   2    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v
< 280 pt >

Bước thứ hai

Bây giờ chúng ta hãy làm điều tương tự cho các phần trung tâm:

gswin32c.exe ^
    -o center-sections.pdf ^
    -sDEVICE=pdfwrite ^
    -g2807x5950 ^
    -c "<</PageOffset [280.67 0]>> setpagedevice" ^
    -f myflyer.pdf

Kết quả:

Output file: center-sections.pdf, page 1
+--------+  ^
|        |  |
|   6    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v

Output file: center-sections.pdf, page 2
+--------+  ^
|        |  |
|   3    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v
< 280 pt >

Bước thứ ba

Cuối cùng, các phần bên phải:

gswin32c.exe ^
    -o right-sections.pdf ^
    -sDEVICE=pdfwrite ^
    -g2807x5950 ^
    -c "<</PageOffset [561.34 0]>> setpagedevice" ^
    -f myflyer.pdf

Kết quả:

Output file: right-sections.pdf, page 1
+--------+  ^
|        |  |
|   1    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v

Output file: right-sections.pdf, page 2
+--------+  ^
|        |  |
|   4    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v
< 280 pt >

Bươc cuôi

Bây giờ chúng tôi kết hợp các trang thành một tệp:

pdftk.exe ^
  A=right-sections.pdf ^
  B=center-sections.pdf ^
  C=left-sections.pdf ^
  cat A1 B2 C2 A2 B1 C1 ^
  output single-files-input.pdf
  verbose

Làm xong. Đây là kết quả mong muốn. 6 trang khác nhau, kích thước 280,67x595.

Kết quả:

+--------+  +--------+  +--------+  +--------+  +--------+  +--------+   ^
|        |  |        |  |        |  |        |  |        |  |        |   |
|   1    |  |   2    |  |   3    |  |   4    |  |   5    |  |   6    |   |
|        |  |        |  |        |  |        |  |        |  |        | 595 pt
|        |  |        |  |        |  |        |  |        |  |        |   |
|        |  |        |  |        |  |        |  |        |  |        |   |
|        |  |        |  |        |  |        |  |        |  |        |   |
+--------+  +--------+  +--------+  +--------+  +--------+  +--------+   v
< 280 pt >  < 280 pt >  < 280 pt >  < 280 pt >  < 280 pt >  < 280 pt > 

1
Holy crap, nghệ thuật tuyệt vời ngay tại đây!
Ivo Flipse

Điều này hoạt động tốt với tôi, nhưng tôi phải đặt PagePackset thành số âm để có được các phần khác.
jonchang

Bạn có thể sử dụng Python cho các tệp PDF lớn hơn: f = open("order.dat","w") for i in [a+1 for a in xrange(63)]: f.write("A{0} B{0} ".format(i)) f.close() Điều này sẽ tạo ra một tập tin đặt hàng với "A1 B1 A2 B2 ... A63 B63". Sau đó, bạn có thể sao chép-dán nó vào pdftk.
Suuuehgi

3

@peims, cảm ơn. Đây là phiên bản từng bước của phương pháp của bạn. Tôi đã thử nó trên một tệp mà tôi muốn chuyển đổi cho Kindle DX của mình và nó hoạt động hoàn hảo:

  • Sử dụng phiên bản đầy đủ của Acrobat v9 để cắt phía bên trái của trang và lưu thành "left.pdf":
    • Sử dụng công cụ cắt để đánh dấu phía bên trái của trang.
    • Nhấp chuột phải và chọn "Đặt Cropbox".
    • Chọn "Tài liệu..Crop Pages" và áp dụng crop cho toàn bộ tài liệu.
  • Lặp lại với các trang bên phải, lưu dưới dạng "right.pdf".
  • Ở giai đoạn này, bạn có hai tài liệu: "left.pdf" với các trang bên trái và "right.pdf" với các trang bên phải.

Tiếp theo, sử dụng pdftk.exe (từ http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ ) để xen kẽ các kết quả vào một tệp duy nhất. Sao chép "pdftk.exe", "left.pdf" và "right.pdf" sang "D: \" và thực hiện:

  • D: & gt; pdftk D: \ left.pdf đầu ra cụm% 05d_A.pdf
  • D: & gt; pdftk D: \ right.pdf đầu ra cụm% 05d_B.pdf
  • D: & gt; pdftk * _?. Đầu ra mèo pdf kết hợp.pdf

Lưu ý: nếu bạn sao chép các tệp vào "C: \", nó sẽ không hoạt động trong Win 7 do quyền bảo mật. Nếu bạn không có D: \, thì hãy tạo thư mục "C: \ x" để hoàn tất thao tác.

Những kết quả này thường sẽ đủ tốt. Tuy nhiên, có thêm hai bước tùy chọn để cải thiện đầu ra.

  • .
    • "Nâng cao..PDF Tối ưu hóa" hoặc:
    • "Advanced..Preflight" với cài đặt "Tương thích với Acrobat 5".
  • (tùy chọn bước cuối cùng 2) Các trang đều có kích thước khác nhau. Lặp lại crop trên tất cả các trang, vì vậy mọi thứ đều có kích thước đồng đều.

3

Chỉ có vấn đề tương tự. Tôi tình cờ phát hiện ra, một công cụ GUI GUI nguồn mở để phân tách và cắt xén các trang pdf:

http://sourceforge.net/projects/briss/

Nó hoạt động rất tốt đối với tôi, trên Linux, mặc dù giao diện người dùng không hoàn toàn tầm thường. Nó thậm chí còn hoạt động với pdf với một số trang có kích thước khác nhau!


2

Bạn có thể sao chép tài liệu, sau đó cắt các trang để chỉ các số trang chẵn hiển thị trong một tệp và chỉ các số trang lẻ trong các tệp khác. Sau đó chia các tệp thành các trang đơn và kết hợp lại để tạo một tài liệu với các mặt đơn thành một trang ...

Bạn có thể làm điều này bằng một số phương thức, ví dụ:

  1. Sử dụng Adobe Acrobat công cụ cắt xén để cắt ra một bên của trang kép và áp dụng cắt xén cho tất cả các trang.
  2. Tách các tệp thành các trang riêng lẻ bằng lệnh 'nổ' trong pdftoolkit
  3. Đổi tên các tệp tuần tự bằng cách sử dụng công cụ đổi tên tệp (ví dụ: ReNamer )
  4. Kết hợp lại các trang bằng lệnh 'cat' trong pdftoolkit

2

Tôi sử dụng tập lệnh sau để xử lý sách được quét trên Mac và Linux. Điều này có thể nhận được khá nhiều bộ nhớ.

#!/bin/bash
#
# This script processes scanned books. After scanning the books have been cropped with
# Preview. This does kind of a "soft crop" that we need to make a bit "harder". 
#
# The second step is to take each page of the PDF and split this into two two pages, 
# because each page of the scanned document actually contains two pages of the book.
#
#

FILE=`mktemp`.pdf
FILE2=`mktemp`.pdf
FILE3=`mktemp`.pdf

echo "Making a temporary copy of the input file."

cp $1 $FILE

#
# Start cropping
#

echo "Cropping the PDF"

# The first regex removes all boxes but CropBox. The second regex renames the  CropBox as MediaBox

perl -pi.bak -e 's/\/(Media|Bleed|Art|Trim)Box[\n\l\f\s]*\[(.+?)\]//msg;' $FILE
perl -pi.bak -e 's/CropBox/MediaBox/g;' $FILE

echo "Validating the PDF"

#Run PDFTK to ensure that the file is OK

cat $FILE | pdftk - output $FILE2

#
# Done cropping, start splitting the pages
#

echo "Splitting the pages in two and changing to 200 dpi with imagemagick. Output goes to $FILE3"

convert -density 200  $FILE2 -crop 50%x0 +repage $FILE3

#
# Done spliting, copy the result in a new file
#


mv $FILE3 $1.pages.pdf

1

Cảm ơn đã tham khảo tuyệt vời. Tôi đã ở trong một vấn đề tương tự nhưng muốn chia sẻ những gì làm việc cho tôi.

Tôi đã có một pdf lá cải định hướng theo chiều ngang với văn bản hướng dọc chỉ ở phía bên trái. Về cơ bản, báo lá cải 2 lần thiếu bất kỳ nội dung nào ở phía bên phải của trang. Điểm bắt đầu tương tự, nhưng báo lá cải là 792 × 1224 (Chân dung), 1124 x 792 (Phong cảnh) và định nghĩa điểm cho báo lá cải 1/2 tôi cần là 612 x 792 điểm.

"C:\Program Files\gs\gs9.10\bin\gswin64c.exe" -o left2.pdf -sDEVICE=pdfwrite -g6120x7920 -c "<</PageOffset [0 0]>> setpagedevice" -f "RFP.pdf"

Có cho tôi nội dung tôi cần vào chân dung 8,5 x 11, dễ đọc hơn nhiều.


0

Điều tôi hiểu là một tệp PDF hiển thị hai trang (cạnh nhau trên một trang) cần phải được chuyển đổi thành một trang trên mỗi trang dẫn đến hai tờ tệp PDF. Nói cách khác, nếu có tổng số ba mươi trang trên 15 tờ, chúng ta cần chuyển đổi tệp PDF thành tệp PDF gồm ba mươi tờ mỗi trang hiển thị một trang. Nếu đây là sự cố, tôi đã sử dụng "công cụ trang trích xuất" Adobe acrobat XI PRO bằng cách chỉ định số trang từ 1 đến 30

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.