Làm cách nào để nhập, xuất và chỉnh sửa dấu trang của tệp pdf?


21

Tôi nghe nói rằng dấu trang của tệp pdf được lưu trữ ở dạng văn bản đơn giản ở đâu đó trong tệp. Tôi đã tự hỏi nếu có thể nhập và xuất dấu trang của tệp pdf vào và từ tệp văn bản, để xử lý hàng loạt?

Nếu có, có bất kỳ mô tả nào về cú pháp để chỉnh sửa tệp văn bản chứa dấu trang của tệp pdf không?

Tôi đã hy vọng cho các giải pháp phần mềm miễn phí cho Ubuntu 10.10 và cho Windows 7.

Cảm ơn và trân trọng!

Câu trả lời:


21

Có khá nhiều công cụ có thể trích xuất dấu trang từ pdf sang tệp văn bản thuần túy và ngược lại. Một số trong đó là như sau:

Ngoài ra, tôi có một tập lệnh có thể chuyển đổi giữa các định dạng của nhiều công cụ sau: bmconverter.py .

Một cách rất hay khác là thêm dấu trang vào pdf qua pdflatex .


13

Bạn có thể sử dụng pdftkcho việc này. Thông tin thêm: Cách xuất và nhập dấu trang PDF .

Xuất dấu PDF trên dòng lệnh như thế này:

pdftk C:\Users\Sid\Desktop\doc.pdf dump_data output C:\Users\Sid\Desktop\doc_data.txt

Nhập dấu trang PDF từ một tệp dữ liệu như thế này:

pdftk C:\Users\Sid\Desktop\doc.pdf update_info C:\Users\Sid\Desktop\doc_data.txt output C:\Users\Sid\Desktop\updated.pdf

pdftkđịnh dạng dấu trang là một chút tẻ nhạt để viết. Thay vào đó tôi tạo ra kịch bản của riêng tôi sử dụng bash, sed, pdftkpython3. Hãy xem thử tại repo này: https://github.com/SiddharthPant/booky

Vì vậy, bây giờ tôi có thể tạo một tệp văn bản ( bkmrks.txt) như thế này chỉ mất 5 phút để viết ngay cả đối với bản pdf 1000 trang.

{
  Title1, 1
  Title2, 2
  {
    Subtitle1, 3
    Subtitle2, 4
    {
      SubSubtitle1, 5
      ...
    }
  }
}

và sau đó sử dụng kịch bản của tôi

./booky.sh pdf_file.pdf bkmrks.txt

điều này tự động tạo ra một pdf ( pdf_file_new.pdf) có dấu trang của tôi trong đó.

Điều này sẽ hoạt động trong các hệ thống * nix nếu thay vào đó bạn đang ở trên máy Windows. Sau đó, trước tiên cài đặt python3pdftkchỉ cần sử dụng booky.pytệp trong repo để chuyển đổi bkmrks.txtsang pdftkđịnh dạng tương thích

python3 booky.py < bkmrks.txt > output.txt

và sau đó sử dụng lệnh xuất để tạo tệp dữ liệu bị đổ. Xóa các dấu trang trước đó khỏi tệp đó và chèn nội dung output.txtthay vào đó bằng cách sử dụng một bản sao dán đơn giản. Và sau đó nhập dữ liệu đó trở lại.


4

Nếu bạn có phiên bản của tài liệu có dấu trang và muốn sao chép chúng, một cách đơn giản hơn nhiều là sử dụng Trình xem PDF-XChange (Tôi đã sử dụng v2.5.211). Mở tệp PDF có dấu trang (PDF nguồn), chọn tất cả dấu trang trong ngăn dấu trang, sao chép chúng bằng Ctrl + C, mở tệp PDF không có dấu trang (tệp PDF đích) và dán chúng (Ctrl + V) trong khung đánh dấu của PDF đó. Trình xem PDF-Xchange duy trì các thuộc tính dấu trang như từ PDF nguồn (bao gồm mọi định dạng in đậm / in nghiêng trên văn bản dấu trang). Nếu vì một lý do nào đó, một số phần của tệp PDF đích thấp hơn hoặc cao hơn do sửa đổi đối với tài liệu, bạn có thể nhấp vào dấu trang cần chỉnh sửa, cuộn đến vị trí trên trang bạn muốn mở dấu trang, phải- nhấp vào dấu trang một lần nữa và nhấp vào "Đặt đích". Lặp lại phần cuối cùng này khi cần thiết cho bất kỳ dấu trang vi phạm. Lưu tệp PDF đích khi hoàn thành.

Điều này làm việc rất tốt cho tôi, khá trực quan, và tôi đã hoàn thành trong vài phút. Trong kịch bản cụ thể của tôi, một đồng nghiệp đã tạo ra một tài liệu rất dài bằng Word cho Mac mà không có dấu trang. Do độ dài của tài liệu, tôi muốn đánh dấu tương ứng với phác thảo của tài liệu. Tôi có thể lấy Word cho Windows để lưu tài liệu dưới dạng PDF bằng dấu trang, nhưng một số khác biệt về định dạng giữa Word cho Windows và Word cho Mac đã loại bỏ số lượng trang khá nhiều (đặc biệt, có sự khác biệt về khoảng trắng xung quanh chân trang và sự khác biệt trong khoảng cách giữa các hình và chú thích). Tôi đã có thể chơi xung quanh với các tiêu đề & chân trang và kích thước hình để có được phân trang chính xác trong Word cho Windows, sau đó được lưu vào PDF w / bookmark. Không may,


1
+1 cho PDF-Xchange. Công cụ càng ít càng tốt
Ooker

1

Thông số kỹ thuật cho các tệp PDF có sẵn dưới dạng PDF có thể tải xuống miễn phí từ Adobe - hoặc ít nhất đó là lần cuối tôi kiểm tra. Tuy nhiên, hầu hết các tệp PDF có hầu hết dữ liệu có thể nén được. Có lẽ đã có một phiên bản PDF cơ bản rõ ràng một lần, và nếu vậy nó vẫn còn hiệu lực ngay bây giờ, nhưng thực sự việc nhận một tệp ở dạng đó có thể là một vấn đề.

Mặc dù tôi chưa thực hiện nhưng một khả năng rất có thể (nếu bạn sẵn sàng trả tiền) là mua Acrobat Pro và sử dụng các khả năng tạo tập lệnh Javascript được tích hợp trong ứng dụng đó. Để giúp bạn bắt đầu ...

http://acrobatusers.com/tutorials/2008/10/auto_bookmark_creation

Hướng dẫn này chỉ ra cách tạo dấu trang tự động bằng Javascript trong Acrobat 7.0 Pro (phiên bản có trong Creative Suite CS2). Mặc dù điều đó đã trở nên hơi cũ, nhưng kỹ thuật tương tự sẽ hoạt động tốt cho các phiên bản mới hơn.

Các ứng dụng Adobe bao gồm một thư viện để đọc / ghi tệp văn bản bằng Javascript (thứ mà Javascript không có tiêu chuẩn), do đó có thể viết các tập lệnh nhập / xuất của riêng bạn, mặc dù không tầm thường để làm cho các tập lệnh đó mạnh mẽ.


Cảm ơn! Có phiên bản Linux của Acrobat Pro không?
Tim

Xin lỗi - tôi rất nghi ngờ điều đó. AFAIK là máy Mac hoặc Windows và Adobe không thể hỗ trợ Linux trừ khi một số lượng lớn các chuyên gia sáng tạo (1) bắt đầu sử dụng nền tảng đó và (2) cho thấy họ sẵn sàng trả nhiều tiền cho phần mềm độc quyền thay vì sử dụng FOSS lựa chọn thay thế. Có vẻ như không thể. Để có giải pháp miễn phí, bạn có thể dùng thử một thư viện như blog.rubypdf.com/2007/12/12/ ((đối với Ruby). Tôi thậm chí còn biết ít hơn về điều này - tôi chỉ tìm thấy nó trên Google.
Steve314

1

Để xuất dấu trang, tôi làm theo một cách tiếp cận khác yêu cầu sử dụng Microsoft OneNote:

Tôi mở trình đọc PDF (tôi sử dụng phiên bản Foxit miễn phí) với cấu trúc dấu trang hiển thị và sau đó, trong OneNote, tôi yêu cầu chụp ảnh nhanh và chọn cấu trúc dấu trang Foxit.

Quay lại OneNote, tôi chọn tùy chọn "Sao chép văn bản từ hình ảnh" (trong menu xuất hiện sau khi nhấp chuột phải vào hình ảnh chụp nhanh) và tôi dán nó ở bên cạnh, để sửa vết lõm (thường là bằng đạn).


1

Tiện dụng. 1 kéo, 1 lần nhấp, xong. https://sourceforge.net/projects/handyoutlinerfo/ . Miễn phí. Dấu trang phụ thụt lề. Không yêu cầu bất kỳ trình đọc / chỉnh sửa PDF. Đồng thời chỉnh sửa, xuất tất cả các chi tiết thành văn bản (sao chép thành từ viết một macro để sắp xếp nó thành một tài liệu từ đầy đủ chức năng) hoặc XML, đánh dấu lại, nhập vào PDF. Dev xứng đáng được đóng góp.

Trình chỉnh sửa PDF-Xchange (PDFViewer thay thế) được đánh dấu ngẫu nhiên / dấu trang bị bỏ qua được xuất thành văn bản

JPDF yêu cầu Java, đã xuất định dạng rác, không thể xóa nó để chỉ lấy tên

PDFtk khiến tôi đau đầu khi chỉ nhìn vào hướng dẫn

:-)


Yêu cái này xuất ra XML, thay vì định dạng bình dị hơn. Giao diện kéo và thả để xuất khẩu cũng không thể đơn giản hơn. Tôi chỉ muốn nó có thể làm nhiều lần cùng một lúc.
Evan Donovan

0

Tôi tìm thấy một giải pháp khá "ngu ngốc" khác để sao chép tất cả các dấu trang trong tệp PDF dưới dạng văn bản để sử dụng ở nơi khác. Trong Acrobat Pro (dành cho Mac OS), không có cách nào để chọn tất cả dấu trang và sao chép / dán chúng vào Trình xử lý. Tuy nhiên, bạn có thể xuất toàn bộ tệp PDF dưới dạng tệp HTML với tùy chọn "một trang HTML duy nhất + thêm khung điều hướng dựa trên dấu trang". Sau đó mở HTML trong trình duyệt, chọn tất cả văn bản trong khung điều hướng và sao chép / dán nó vào Trình xử lý ...


0

Để đọc tất cả dấu trang từ tệp PDF sang tệp văn bản, bạn có thể sử dụng lệnh này với pdftk:

pdftk input.pdf dump_data output output.txt

Sau đó tôi đã sử dụng regex trên Notepad ++ để loại bỏ các phần phụ. Sau đây tôi đã thay thế bằng một chuỗi trống (theo thứ tự) và sau đó tôi đã kết thúc với một danh sách các dấu trang (đừng quên thay thế bằng regex trong trình soạn thảo văn bản của bạn):

BookmarkLevel.*
BookmarkPageNumber.*
BookmarkBegin.*
\n\s+\n

Nếu bạn muốn xóa các số, thay thế biểu thức này:

BookmarkTitle: A8.\d.\d+\s
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.