Thêm máng xối (lề ràng buộc) vào tệp PDF hiện có


4

Làm cách nào tôi có thể thêm lề máng xối (khác nhau cho các trang lẻ và chẵn) vào tài liệu PDF để có chỗ để đục lỗ sau khi tôi in? Tôi quen thuộc với Ghostscript và Linux Terminal nhưng không thể tìm thấy các lệnh để đáp ứng nhu cầu cụ thể này.

Hiện tại một số nội dung quá gần với cạnh. Tôi có thể sử dụng tỷ lệ trong hộp thoại in để tạo khoảng trống cho liên kết, nhưng điều này sẽ làm giảm kích thước hơn mức cần thiết và để lại một khoảng trống ở cả hai bên của trang.

Một giải pháp chỉ cần thêm một centimet thêm vào hai bên của trang (bên trái cho các trang lẻ và bên phải) sẽ là đủ ở đây vì sau đó tôi có thể chọn tính năng "chia tỷ lệ cho phù hợp" khi tôi in.

Câu hỏi của tôi ban đầu được đánh dấu là một bản sao của câu hỏi này , nhưng không câu trả lời nào giải quyết được vấn đề của tôi. Tôi đã thử sử dụng cả Briss và PDF Kéo, nhưng chúng là các công cụ cắt xén PDF và chỉ có thể làm cho các trang nhỏ hơn, không lớn hơn. Câu hỏi của tôi cũng khác nhau vì tôi cần thay đổi kích thước khác nhau trên các trang lẻ và chẵn. Người hỏi của câu hỏi ban đầu không có yêu cầu này.


Bạn có Adobe Acrobat không? (Không phải Adobe "Reader")
skub

Không, tiếc là không. Tôi cũng đã thử GhostScript theo hướng dẫn trong câu trả lời này cho một câu hỏi liên quan, nhưng bản PDF kết quả có vẻ giống với bản gốc, vì người hỏi của câu hỏi đó đã tìm thấy khi anh ta thử nó.
HullCityFan852

1
Đây là một câu trả lời một phần có thể: sử dụng pdftk( Bộ công cụ PDF ) để chia tệp thành một tệp với các trang chẵn và một tệp có các trang lẻ, đệm các trang trong mỗi tệp một cách thích hợp (Tôi không biết cách làm điều đó) và kết hợp lại chúng với pdftk. Xem thêm [Cách] hợp nhất hai tệp PDF chứa các trang chẵn và lẻ của một cuốn sách cho một số công cụ khác.
Scott

@Scott Cảm ơn, điều này chắc chắn sẽ làm việc. Việc đệm có thể được thực hiện như thế này . (Lưu ý rằng mặc dù câu hỏi đề cập đến việc tập trung vào câu trả lời đạt được điều này bằng cách sử dụng bù thủ công.) Tuy nhiên, tôi thực sự đã xoay sở để giải quyết vấn đề này trong một bước duy nhất (nghĩa là không tách tệp). Xem câu trả lời của tôi dưới đây.
HullCityFan852

Câu trả lời:


7

Tôi dự định mở rộng điều này thành một câu trả lời thích hợp khi tôi có thời gian, nhưng đây là giải pháp tôi tìm thấy, trong trường hợp bất cứ ai cũng cần nó trong lúc này. Ý tưởng là sử dụng Ghostscript với -ctùy chọn sửa đổi tệp PDF bằng PostScript tùy chỉnh.

Trước tiên, bạn cần biết chiều cao và chiều rộng của bản PDF gốc trong Điểm (có 72 Điểm trong một inch). Bạn có thể sử dụng công cụ "pdfinfo" để tìm thông tin này:

pdfinfo "inputFile.pdf"

Giả sử bạn có một tài liệu A4 - A4 là 595pts × 842pts (210mm × 297mm).

Nếu bạn muốn thêm máng xối 10 mm (= 1cm = 28pts) vào tài liệu A4, thì bạn cần cung cấp thông tin sau cho Ghostscript:

-dDEVICEHEIGHTPOINTS=842 (chiều cao của A4)
 -dDEVICEWIDTHPOINTS=623 (= 595 + 28, nghĩa là chiều rộng của A4 + máng xối được thêm vào)
   {28 0 translate} {}     ({dịch chuyển các trang lẻ 28pts phải & 0pts lên} {không làm gì cho các trang chẵn})

Lưu ý: Chỉ định chiều rộng tăng thêm không gian ở phía bên phải của trang, do đó, chỉ có các trang được đánh số lẻ phải được dịch - các trang chẵn đã được đặt chính xác.

Đây là lệnh đầy đủ cho Linux:

gs -q -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -sOutputFile=outputFile.pdf \
  -dDEVICEWIDTHPOINTS=623 -dDEVICEHEIGHTPOINTS=842 -dFIXEDMEDIA \
  -c "<< /CurrPageNum 1 def /Install { /CurrPageNum CurrPageNum 1 add def
   CurrPageNum 2 mod 1 eq {28 0 translate} {} ifelse } bind  >> setpagedevice" \
  -f "inputFile.pdf"

Lưu ý: Lệnh này làm cho PDF rộng hơn 1cm so với A4. Nếu sau đó bạn in trên A4, mọi thứ sẽ được thu nhỏ lại cho vừa và máng xối thực sự sẽ mỏng hơn 1cm (nó sẽ là 9,5mm). Nếu điều đó không đủ tốt thì bạn sẽ phải làm một chút đại số để có được phần bù chính xác. Trong trường hợp này sẽ là 29,8pts, thay vì 28pts, để có được máng xối in 10.0mm (bạn cũng cần phải đặt -dDEVICEWIDTHPOINTS=624.8). Tuy nhiên, nếu máng xối nhỏ hơn ~ 2cm thì có lẽ không đáng để thực hiện phép tính, đặc biệt là xem xét dung sai trong in ấn và khổ giấy.


1
Bạn đã tìm thấy giải pháp ban đầu ở đâu? :-) (Cải thiện tốt với PostScript mã hóa bản dịch tự động cho các trang lẻ, BTW) :)
Kurt Pfeifle

@Kurt Cảm ơn :) Nhưng tôi không hoàn toàn chắc chắn về ý của bạn. Tôi đã lấy cảm hứng từ một vài câu trả lời khác , cũng từ các trang của người đàn ông GhostScript và từ Tài liệu tham khảo ngôn ngữ PostScript của Adobe . Như bạn đã nói, việc điều chỉnh nó chỉ ảnh hưởng đến các trang lẻ hoàn toàn là phát minh của riêng tôi và nó thực sự vô cùng khó khăn do những hạn chế của các ngôn ngữ dựa trên ngăn xếp như PostScript.
HullCityFan852

@Kurt Thật thú vị, trang 414 của Tài liệu tham khảo ngôn ngữ PostScript đề cập đến chức năng ImageShift được tích hợp để thực hiện chính nhiệm vụ này và trang 427 gợi ý sử dụng BeginPage. Tuy nhiên, tôi đã thử cả hai và dường như không hoạt động với Ghostscript, do đó bộ đếm trang thủ công trong giải pháp của tôi.
HullCityFan852

Điều này cũng sẽ làm việc : gs -o out.pdf -sDEVICE=pdfwrite -c "<</PageOffset [100 -100]>>setpagedevice" -f in.pdf. Các /ImageShifttham số pagedevice chỉ có sẵn trong PostScript 3 và có thể không được hỗ trợ bởi Ghostscript.
Kurt Pfeifle

@Kurt Điều đó dường như cung cấp cùng một sự thay đổi cho các trang lẻ và chẵn, không phải là sự thay đổi ngược lại, đó là những gì tôi đang cố gắng đạt được, và giải pháp của tôi là như vậy.
HullCityFan852
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.