Có rất nhiều phần mềm trong Windows để hợp nhất các tệp PDF nhưng làm thế nào chúng ta có thể làm điều tương tự trong Ubuntu?
Có rất nhiều phần mềm trong Windows để hợp nhất các tệp PDF nhưng làm thế nào chúng ta có thể làm điều tương tự trong Ubuntu?
Câu trả lời:
Nếu bạn muốn có một công cụ với GUI đơn giản, hãy thử pdfshuffler . Nó cho phép hợp nhất các tệp PDF cũng như sắp xếp lại và xóa các trang. Để xử lý hàng loạt và / hoặc các tác vụ phức tạp hơn, pdftk dĩ nhiên mạnh hơn.
pdfshufflerhoạt động tốt vào ngày 14.04 amd64.
Để hợp nhất hai tệp pdf file1.pdfvà file2.pdf:
pdftk file1.pdf file2.pdf cat output mergedfile.pdf
Thêm thông tin có sẵn ở đây Way Back Machine .
catvà outputtuân theo các đối số đầu vào có biến đổi và tiếp theo là một đối số đầu ra.
Ghostscript là một gói (có sẵn theo mặc định trong Ubuntu) cho phép bạn xem hoặc in các tệp PostScript và PDF sang các định dạng khác hoặc để chuyển đổi các tệp đó sang các định dạng khác.
Để sử dụng Ghostscript để kết hợp các tệp PDF, hãy nhập nội dung như sau:
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dAutoRotatePages=/None -sOutputFile=finished.pdf file1.pdf file2.pdf
Dưới đây là một lời giải thích ngắn gọn về lệnh:
gs starts the Ghostscript program.
-dBATCH once Ghostscript processes the PDF files, it should exit.
If you don't include this option, Ghostscript will just keep running.
-dNOPAUSE forces Ghostscript to process each page without pausing for user interaction.
-q stops Ghostscript from displaying messages while it works
-sDEVICE=pdfwrite
tells Ghostscript to use its built-in PDF writer to process the files.
-sOutputFile=finished.pdf
tells Ghostscript to save the combined PDF file with the specified name.
-dAutoRotatePages=/None
Acrobat Distiller parameter AutoRotatePages controls the automatic orientation selection algorithm: For instance: -dAutoRotatePages=/None or /All or /PageByPage.
Các tệp đầu vào của bạn thậm chí không cần phải là các tệp PDF. Bạn cũng có thể sử dụng các tệp PostScript hoặc EPS hoặc bất kỳ hỗn hợp nào trong ba.
Có rất nhiều thứ bạn có thể làm với Ghostscript. Bạn có thể đọc tài liệu của nó để biết thêm chi tiết.
pdftkmất 0m0.484s, gsmất 1m32.898 (chậm hơn gần 200 lần) Tuy nhiên, tệp từ gsnhỏ hơn khoảng 21%.
file1.pdf file2.pdfbằngfile*.pdf
gsđã làm việc với một số tệp PDF "không phù hợp", nơi pdftksẽ chạy mãi mãi.
file*.pdfvới file1.pdf file2.pdftrước khi đi qua các đối số lệnh.
Bạn cũng sử dụng pdfunite để hợp nhất các tài liệu pdf:
pdfunite in-1.pdf in-2.pdf in-n.pdf out.pdf
out.pdfsẽ bị ghi đè mà không có cảnh báo, vì vậy pdfunite *.pdfsẽ không hoạt động như mong đợi.
cpcũng ghi đè lên lập luận cuối cùng mà không cần cảnh báo. Điều này chỉ dành cho những người dùng vội vã (như bản thân tôi) - Tôi thật may mắn vì tôi đã có một bản sao lưu của tập tin được đề cập ...
Một giải pháp rất hay là PDFChain. GUI của nó là một giao diện của PDFTK nơi bạn có thể hợp nhất, phân tách hoặc thậm chí thêm một số nền vào các tệp PDF của mình.
aptcũng không cho kết quả nào: /
Một cách tiếp cận khác là sử dụng latex như được giải thích trong bài đăng này ( không có quyền truy cập root giả sử rằng bạn đã cài đặt pdflatex ): https://tex.stackexchange.com/questions/8662/merge-two-pdf-files-output-by- mủ cao su
Điều này hữu ích trong trường hợp bạn không có các công cụ được đề cập cũng như các đặc quyền gốc, nhưng bạn có pdflatex.
Tôi sao chép mã tex dưới đây để hợp nhất file1.pdfvà file2.pdf. Tạo một tệp được gọi output.texvà đặt:
\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-]{file1}
\includepdf[pages=-]{file2}
\end{document}
Và để biên dịch, chỉ cần sử dụng: pdflatex output.tex
Các tập tin hợp nhất sẽ được đặt tên là output.pdf.
Tôi sử dụng pdfseparate để trích xuất các trang cụ thể từ tệp pdf lớn:
pdfseparate -f 156 -l 157 input.pdf output_%d.pdf
pdfseparate -f 1 -l 2 input.pdf output_%d.pdf
và sau khi tôi tham gia tất cả chúng thông qua lệnh:
pdfunite $(ls -v output_*.pdf | tr '\n' ' ') out$(date +%Y-%m-%d_%H_%M_%S ).pdf
Điều này tham gia:
output_1.pdf output_2.pdf output_156.pdf output_157.pdf
vào:
out2014-12-14_23_25_36.pdf
Có thể có một cách dễ dàng hơn để đối phó ... :-)
pdfunite output_*.pdf out$(date +%Y-%m-%d-%H_%M_%S).pdfnhưng nó thiếu thứ tự ls -v. Một sửa chữa rõ ràng và tầm thường là đặt tên cho các tệp của bạn để chúng tự nhiên sắp xếp theo thứ tự bạn muốn đưa chúng vào. Nếu bạn hoàn toàn muốn ls -v, ít nhất bạn có thể mất đường ống tr, điều này không thực hiện được gì ở đây.
Sử dụng pdfsam http://www.pdfsam.org/ rất tốt để chia và hợp nhất pdf
Bạn có thể sử dụng pdftk để hợp nhất và sửa đổi các tài liệu PDF nói chung. Ngoài ra, có một dịch vụ trực tuyến để làm việc đó: http://www.pdfmerge.com/
Đây là cách tiếp cận của tôi:
Đây là kết quả:
#!/bin/sh
CLEANED_FILE_PATHS=$(echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS | sed 's,.pdf /home/,.pdf\\n/home/,g')
echo $CLEANED_FILE_PATHS | bash -c 'IFS=$'"'"'\n'"'"' read -d "" -ra x;pdfunite "${x[@]}" merged.pdf'
Juste dán đoạn script này vào
/home/your_username/.local/share/nautilus/scripts
và đặt tên là "merge_pdfs.sh" (ví dụ). Sau đó làm cho nó có thể thực thi được (nhấp chuột phải vào merge_pdfs.sh -> tab Quyền -> đánh dấu "Cho phép thực thi tệp dưới dạng chương trình"
Vì vậy, bây giờ để hợp nhất các tệp pdf, bạn chỉ cần chọn chúng -> nhấp chuột phải -> script -> merge_pdfs.sh và nó sẽ tạo một tệp "merged.pdf" trong cùng thư mục
Hy vọng nó giúp!