Có ai biết một cách hay để chia các trang pdf xuống giữa thành hai trang mới không?
Để rõ ràng, tôi không cố tách ra các trang đã có từ pdf; Tôi đang cố gắng tạo hai trang mới từ một trang hiện có.
Có ai biết một cách hay để chia các trang pdf xuống giữa thành hai trang mới không?
Để rõ ràng, tôi không cố tách ra các trang đã có từ pdf; Tôi đang cố gắng tạo hai trang mới từ một trang hiện có.
Câu trả lời:
Hãy thử BRISS .
Nó cho phép bạn chia mỗi trang thành nhiều trang con như bạn muốn bằng cách xác định các vùng bằng GUI. Nó nhóm tất cả các trang tương tự thành các nhóm cho bạn, vì vậy bạn có thể xác định các khu vực cho nhóm đó một lần.
Đó là đa nền tảng, miễn phí và nguồn mở.
Bạn có thể giải quyết điều này với sự trợ giúp của Ghostscript. pdftk
một mình không thể làm điều đó (theo sự hiểu biết tốt nhất của tôi). Tôi sẽ cung cấp cho bạn các bước dòng lệnh để làm điều này bằng tay. Sẽ dễ dàng để kịch bản này như một thủ tục, cũng với các tham số khác nhau cho kích thước trang và số trang. Nhưng bạn nói rằng bạn có thể tự làm điều đó ;-)
... Và để giải trí, gần đây tôi đã thực hiện nó không phải bằng một tệp đầu vào có các trang "nhân đôi", mà là một trang có "treble-up". Bạn có thể đọc câu trả lời cho trường hợp này trong phản ứng khác này .
Trường hợp của bạn thậm chí còn đơn giản hơn. Bạn dường như có một cái gì đó tương tự như thế này:
+------------+------------+ ^
| | | |
| 1 | 2 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
^
fold
v
+------------+------------+ ^
| | | |
| 3 | 4 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
<---------- 842 pt -------->
Bạn muốn tạo 1 PDF với 4 trang, mỗi trang có kích thước 421 pt x 595 pt.
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:
gs \
-o left-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [0 0]>> setpagedevice" \
-f double-page-input.pdf
Những thông số này đã làm gì?
Đầu tiên, hãy biết rằng trong PDF 1 inch == 72 điểm . Sau đó, phần còn lại là:
-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 [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
+------------+ ^
| | |
| 1 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Output file: left-sections.pdf, page 2
+------------+ ^
| | |
| 3 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
Tiếp theo, các phần bên phải:
gs \
-o right-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [-421 0]>> setpagedevice" \
-f double-page-input.pdf
Kết quả:
Output file: right-sections.pdf, page 1
+------------+ ^
| | |
| 2 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Output file: right-sections.pdf, page 2
+------------+ ^
| | |
| 4 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
Bây giờ chúng tôi kết hợp các trang thành một tập tin. Chúng tôi cũng có thể làm điều đó với ghostscript, nhưng pdftk
thay vào đó chúng tôi sẽ sử dụng vì công việc này nhanh hơn:
pdftk \
A=right-sections.pdf \
B=left-sections.pdf \
shuffle A B \
output single-pages-output.pdf
verbose
Làm xong. Đây là kết quả mong muốn. 4 trang khác nhau, kích thước 421x595 pt.
Kết quả:
+------------+ +------------+ +------------+ +------------+ ^
| | | | | | | | |
| 1 | | 2 | | 3 | | 4 | |
| | | | | | | | 595 pt
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
+------------+ +------------+ +------------+ +------------+ v
<-- 421 pt --> <-- 421 pt --> <-- 421 pt --> <-- 421 pt -->
"<</PageOffset [-421 0]>> setpagedevice"
. Tôi đoán nó phụ thuộc vào định hướng của tập tin gốc. Câu trả lời tuyệt vời dù sao. :)
Cảm ơn @marttt và câu trả lời của họ trong Unix & Linux .
Bạn có thể sử dụng mutool
(là một phần của mupdf
):
mutool poster -x 2 input.pdf output.pdf
Bạn cũng có thể sử dụng -y
nếu bạn muốn thực hiện phân chia dọc.
Để mở rộng dựa trên câu trả lời của @ Kurt (vì tôi không có đủ điểm danh tiếng để nhận xét) trước tiên hãy đảm bảo rằng kích thước bạn sử dụng không dựa trên kích thước Hộp cắt nếu chúng khác với kích thước Hộp phương tiện. Kích thước đầu ra dựa trên kích thước Hộp Phương tiện, nhưng phần bù dường như sử dụng kích thước Hộp Cắt.
Đối với một trang được đóng gói có hộp phương tiện 20,0833 x 13,833 và hộp cắt xén 19,25 x 13,0 giống như hộp trang trí trong tài liệu của tôi, để chia nó thành hai trang trên Ubuntu, cho bên trái:
gs -o left.pdf -sDEVICE=pdfwrite -g7230x9960 -c "<</PageOffset [0 0]>> setpagedevice" -f gatefold.pdf
Phía bên phải:
gs -o right.pdf -sDEVICE=pdfwrite -g7230x9960 -c "<</PageOffset [-693 0]>> setpagedevice" -f gatefold.pdf
Và sau đó khâu chúng với pdftk left.pdf right.pdf output final.pdf
.
Một cách khác là đặt hộp cắt giống như hộp phương tiện; thì phần bù sẽ là -723. Nhưng sau đó, crop sẽ phải được thiết lập lại để cắt để các trang xuất hiện liền mạch. Nếu không, đặt phương tiện để cắt.