Có một lớp lót nhanh chóng để kết hợp nhiều pdf thành một không?
Tôi biết nó có thể được thực hiện bằng Preview.app
Có một lớp lót nhanh chóng để kết hợp nhiều pdf thành một không?
Tôi biết nó có thể được thực hiện bằng Preview.app
Câu trả lời:
Hãy xem "Kết hợp các tệp PDF trên dòng lệnh trong OSX" trong Tham gia các tệp PDF trong OS X từ Dòng lệnh .
Hóa ra từ Tiger trở đi, OSX vận chuyển với tập lệnh Python thực hiện chính xác những gì bạn cần. Kịch bản đã được thực thi và Python được cài đặt sẵn trên OS X, vì vậy tất cả những gì bạn cần làm để chạy nó là mở Terminal và gõ
"/System/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py" -o PATH/TO/YOUR/MERGED/FILE.pdf /PATH/TO/ORIGINAL/1.pdf /PATH/TO/ANOTHER/2.pdf /PATH/TO/A/WHOLE/DIR/*.pdf
Cũng trên trang liên kết nó đề nghị thực hiện một liên kết tượng trưng cho join.py
tập tin để thực hiện gõ dễ dàng hơn tuy nhiên họ bỏ qua -s
trong ln -s ... ...
, và không có nó, một liên kết cứng được tạo ra. Có lẽ sẽ không có vấn đề gì, tuy nhiên tôi muốn đề cập đến nó.
Chỉ cần cài đặt Ghostscript bằng cách sử dụng lệnh Brew:
brew install gs
Sau đó chạy lệnh với tất cả các tệp được liệt kê:
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=merged.pdf source1.pdf source2.pdf source3.pdf
gs
vì vậy để tham khảo trong tương lai, giải pháp này sẽ rất tiện lợi.
Kịch bản python của Apple trong hành động Automator rất chậm, vì nó sử dụng API CGPDFDocument của CoreGraphics, thay vì khung PDFKit mới hơn. Nó cũng nhập toàn bộ thư viện CoreGraphics, thay vì chỉ các API cần thiết.
Một kịch bản python thay thế, nhanh hơn, có thể được tìm thấy ở đây:
Tập lệnh này cũng thêm Mục lục vào PDF, liệt kê từng tệp thành phần (và hợp nhất các ToC hiện có) mà Apple không có.
Nó có thể được sử dụng trên dòng lệnh (với tên tệp PDF làm đối số) hoặc trong hành động tập lệnh shell của Trình tự động, để tạo Hành động / Dịch vụ nhanh cho Trình tìm kiếm.
time
lệnh kết hợp với joinpdfs.py
tập lệnh của bạn , join.py
tập lệnh tích hợp và hai tệp ~ 200 MB mỗi joinpdfs.py
tập lệnh, tập lệnh của bạn nhanh hơn 9 giây so với join.py
tập lệnh tích hợp , tất nhiên có thêm lợi ích của việc giữ nguyên TOC . Tốt đẹp! +1
FWIW, tôi đã viết một chương trình nhỏ nhanh chóng cho phép bạn làm điều này mà không phải phụ thuộc vào các phụ thuộc bên ngoài như python hệ thống và như vậy. Trên github ở đây: pdfmerge và khá đơn giản để sử dụng, có thể chuyển cho nó một danh sách các tệp PDF để hợp nhất pdfmerge in1.pdf in2.pdf ... out.pdf
, chuyển cho nó một danh sách các tệp để hợp nhất trong một tệp văn bản như pdfmerge infileslist.txt out.pdf
hoặc chỉ cần thực hiện thư mục hiện tại theo thứ tự ABC pdfmerge out.pdf
. Tôi đã viết nó như một dự án học tập, miễn phí và mở và bạn có thể nhận được nhị phân mới nhất từ tab phát hành trên github.
join.py
tập lệnh từ hành động Kết hợp các trang PDF trong Automator, không có gì khác cần phải tải xuống hoặc cài đặt, nhưng bạn phải sử dụng tải về và cài đặt nó Cũng không thấy một nhị phân tại liên kết.
dựa trên câu trả lời hay của @Bartosz Petryński , chúng ta có thể tạo ra tiện ích tối thiểu của riêng mình trên đầu GhostScript:cpdf
brew install gs
cpdf () {
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$1" "${@:2}"
}
sau đó sử dụng nó như sau:
cpdf merged.pdf file1.pdf file2.pdf file3.pdf
Tôi tìm thấy Công cụ dòng lệnh Coherent PDF miễn phí là lựa chọn tốt nhất. Nó rất nhanh, không mất dữ liệu và không làm rối loạn định hướng hoặc siêu liên kết như một số giải pháp khác đã làm. Định dạng là:
cpdf file1.pdf file2.pdf -o output.pdf