Computer >> Máy Tính >  >> Phần mềm >> Office

Cách làm phẳng tài liệu PDF - Hướng dẫn

Vài ngày trước, tôi đã chỉ cho bạn cách sắp xếp lại thông tin trong Okular, trình xem PDF mặc định trong màn hình Plasma. Thao tác này tương đối đơn giản để thực hiện, nhưng nó không phá hủy thông tin đã được biên tập lại một cách hiệu quả mà chỉ che khuất thông tin khỏi người xem.

Điều tôi muốn cho bạn thấy hôm nay là phần thứ hai của câu đố - làm phẳng các tài liệu PDF. Hãy nghĩ đến một hình ảnh có nhiều lớp và sau đó bạn lưu tất cả ở định dạng không có lớp. Thông tin sau đó được làm phẳng thành một lớp duy nhất - giá trị của tất cả các pixel xếp chồng lên nhau theo chiều dọc được tính toán - cộng/trừ/bất kỳ thứ gì - và sau đó được trình bày dưới dạng một phép tính dứt khoát duy nhất của hành động này. Điều tương tự với PDF, ngoại trừ nó phức tạp hơn do cấu trúc của PDF. Hãy làm đi.

Công cụ giao dịch - Ghostscript

Bạn có thể đã nghe nói về Ghostscript (gs) trước đây - Tôi chắc chắn đã nói về nó trong nhiều năm qua trong các bài viết khác nhau của tôi liên quan đến LaTeX và LyX. Vì vậy, bây giờ, chúng tôi sẽ sử dụng công cụ gs để xử lý một tệp PDF "nhiều lớp" hiện có thành một tệp được làm phẳng, theo đó thông tin sẽ được xử lý lại đúng cách. Chúng tôi sẽ làm điều này trong Linux, bởi vì nếu có một điều mà Linux làm tốt hơn các hệ điều hành khác - các tác vụ tập trung, cụ thể với xử lý định dạng tệp. Như vậy, Ghostscript sẽ có sẵn trong bản phân phối của bạn và nếu nó chưa được cài đặt, nó sẽ nằm trong kho lưu trữ của kho lưu trữ.

gs -sDEVICE=pdfwrite -dPDFSETTINGS=/default -dNOPAUSE -dQUIET -dBATCH -sOutputFile=flattened.pdf input.pdf

Đây là lệnh làm phép thuật. Nó không thực hiện bất kỳ quá trình xử lý bổ sung nào đối với bất kỳ hình ảnh nào bạn có thể có trong tệp PDF của mình - vì vậy bạn không nên mong đợi bất kỳ sự giảm kích thước lớn nào. Rốt cuộc, đó không phải là mục đích ở đây. Nhưng hiệu quả thì chỉ có vậy.

Các phương pháp thay thế - ImageMagick và pdf2ps

Nếu những điều trên không làm bạn hài lòng vì bất kỳ lý do gì, có hai cách tiếp cận khác mà bạn có thể thử. Tuy nhiên, xin lưu ý, tôi thấy những thứ này kém hiệu quả hơn so với sử dụng gs. Vì vậy, hãy nhớ rằng khi bạn tiếp tục với các đề xuất được liệt kê bên dưới.

Bạn có thể thử tiện ích chuyển đổi ImageMagick. Nhưng chờ đã.

chuyển đổi -density 300 original.pdfflat.pdf

Theo mặc định, do lỗ hổng bảo mật trong công cụ Ghostscript, ImageMagick được định cấu hình để không xử lý các tệp khác nhau, bao gồm PS, PDF, EPS, XPS và các tệp khác. Vì vậy, nếu bạn thử mà không chỉnh sửa chính sách ImageMagick, bạn sẽ thấy lỗi sau:

convert-im6.q16:cố gắng thực hiện một thao tác không được chính sách bảo mật `PDF' cho phép @ error/constitute.c/IsCoderAuthorized/408.
convert-im6.q16:không có hình ảnh nào được xác định `flattened.pdf' @ error/convert.c/ConvertImageCommand/3258.

Để giải quyết vấn đề này, bạn cần chỉnh sửa tệp sau - thay thế [NUMBER] bằng 6 hoặc 7 cho phiên bản phù hợp:

/etc/ImageMagick-[NUMBER]/policy.xml

Trong tệp này sẽ có danh sách các chính sách bảo mật:

...



Thay đổi một cho PDF để quyền ="không" trở thành quyền ="đọc | viết". Nếu lo lắng về vấn đề bảo mật, bạn chỉ có thể thực hiện thay đổi tạm thời trong khi làm phẳng tệp cụ thể, sau đó hoàn nguyên về cài đặt mạnh mẽ hơn.

...



Bây giờ, bạn có thể xử lý tệp. Thông thường, việc này sẽ mất nhiều thời gian hơn so với sử dụng trực tiếp gs. Ngoài ra, nếu bạn đang làm việc với các tệp rất lớn, bạn cũng có thể hết bộ nhớ và quá trình chuyển đổi sẽ không thành công. Ví dụ:

convert-im6.q16:hết tài nguyên bộ đệm `flattened.pdf' @ error/cache.c/OpenPixelCache/4083 `flattened.pdf' @ error/pdf.c/WritePDFImage/2341.

Một lần nữa, bạn sẽ cần thay đổi tệp cấu hình XML và tăng giới hạn bộ nhớ trong các chính sách khác nhau. Tuy nhiên, rất có thể tài liệu quá lớn so với tài nguyên bộ nhớ khả dụng mà bạn có trên hệ thống của mình. Tôi không có bộ ma thuật nào để gợi ý:

...






...

Công cụ thứ hai là cặp pdf2ps và ps2pdf. Về cơ bản, bạn muốn chuyển đổi PDF thành tệp PS rồi quay lại PDF, điều này sẽ làm phẳng tài liệu một cách hiệu quả. Lệnh ma thuật làm gì:

pdf2ps gốc.pdf - | ps2pdf - làm phẳng.pdf

Điều này hoạt động tốt và nhanh chóng - nhưng, mặc định dẫn đến hình ảnh có độ phân giải thấp do quá trình nén mạnh. Đây là điều cần tính đến và thử nghiệm với các tùy chọn khác nhau trong công cụ để đảm bảo bạn giữ được độ trung thực của tài liệu mà bạn yêu cầu.

Kết luận

Và ở đó bạn đi. Bây giờ bạn đã học cách làm phẳng các tệp PDF. Những điều phức tạp về kỹ thuật về cách thức hoạt động của tất cả những thứ này nằm ngoài phạm vi của bài viết này, nhưng ít nhất bạn có các công cụ để hoàn thành công việc. Kinh nghiệm của tôi cho thấy Ghostscript là nhanh nhất và hiệu quả nhất, đồng thời tạo ra kết quả tốt nhất trong quá trình thực hiện.

Bạn cũng có thể thử hai tiện ích khác được đề cập - ImageMagick và pdf2ps/ps2pdf combo. Tuy nhiên, tôi ít hài lòng hơn với kết quả. Dù sao đi nữa, nếu bạn phải chia sẻ tệp PDF với người khác và bạn muốn sắp xếp lại các đoạn thông tin chứa trong đó, giờ đây bạn có một quy trình gồm hai hướng dẫn để sắp xếp tệp này. Hướng dẫn thứ hai này hoàn thành bức tranh. Tạm biệt nhé.

Chúc mừng.