MS Word 2007+ - nó có thể mã hóa các siêu liên kết bằng cách sử dụng Kiểu hành động PDF, ra mắt thay vì URI, khi xuất hiện một tập tin .docx chế biến thành PDF không?


9

Phiên bản ngắn:

  • Có cách nào để tôi có thể làm cho MS Word 2007 (hoặc mới hơn) mã hóa các siêu liên kết tệp tương đối (một siêu liên kết trỏ đến, ví dụ: một tệp PDF khác) bằng cách sử dụng Loại hành động Launchthay vì URI(cả hai loại được chỉ định trên trang 653 của Định dạng tài liệu di động Adobe, Tài liệu tham khảo PDF, phiên bản 1.7, phiên bản thứ sáu - http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/pdf_Vference_1-7.pdf )? Hoặc là giải pháp duy nhất để thực hiện một bộ xử lý hậu kỳ có thể thay đổi tất cả các URIsiêu liên kết tệp được mã hóa "sai" thành Launchtương đương của chúng ?

Phiên bản xây dựng:

Tôi có hai tài liệu Word; doc1.docxdoc2.docx(cả hai được biên dịch với MS Word 2007).

Trong doc1.docxTôi đặt một siêu liên kết đến phiên bản PDF của tài liệu thứ hai của tôi ( doc2.pdf) - vì vậy bây giờ tôi đã nhận được:

Thuộc tính của siêu liên kết <code> doc2.pdf </ code> trong <code> doc1.docx </ code>

Sau đó tôi lưu doc1.docxtệp dưới dạng cả hai .docx.pdf- PDFthế hệ được xử lý bởi nhà xuất bản PDF tích hợp trong MS Word 2007 bằng các tùy chọn sau:

MS Word 2007 PDF Xuất bản thuộc tính

Cho đến nay rất tốt - Tôi có cấu trúc thư mục sau:

/superuser
    - doc1.docx
    - doc1.pdf
    - doc2.docx
    - doc2.pdf

Sau đó, tôi mở doc1.pdfbằng Adobe Reader X (phiên bản 10.1.3) và nhấp vào siêu liên kết trỏ đến doc2.pdf. Vì liên kết là tương đối nên tôi đã đoán / giả định rằng Adobe Reader X sẽ chỉ mở tệp PDF đích trong một cửa sổ riêng hoặc trong cùng một phiên bản Adobe Reader X (tùy thuộc vào tùy chọn Open cross-document links in same windowđược chỉ định trong Edit -> Preferences -> Documents:).

Tuy nhiên, đó không phải là trường hợp. Thay vào đó, Adobe Reader X giải quyết siêu liên kết bằng trình duyệt mặc định (trong trường hợp của tôi là Google Chrome v21 + trên Windows 7 x64) - và rõ ràng - đây là vấn đề . Tôi muốn Adobe Reader X (và hầu hết các phiên bản trước của nó) chỉ giải quyết siêu liên kết bằng cách mở tệp PDF đích trong một phiên bản khác của Adobe Reader X (giả sử tôi đã bỏ Open cross-document links in same windowchọn tùy chọn này). Lặp lại cùng một kịch bản bằng trình đọc PDF (mặc định) của tôi; Sumatra PDF hoạt động như mong đợi - Sumatra PDF mở tệp PDF đích trong một cửa sổ riêng và hiển thị cho tôi nội dung củadoc2.pdf. Vậy tại sao không sử dụng Sumatra PDF thì bạn hỏi? Tôi rất thích - tuy nhiên, vấn đề là tôi đang làm việc trong một dự án có nhiều người dùng cuối và tôi không thể cho rằng tất cả họ đều sử dụng trình đọc PDF khác ngoài Adobe Reader X - vì vậy, không có cách nào khác rằng tìm hiểu những gì đang xảy ra với Adobe Reader X.

Vì vậy, để đạt được điều đó, tôi bắt đầu đào.

Đầu tiên, bằng cách nhìn vào thanh địa chỉ trong Chrome, người ta thấy rằng Adobe Reader X cố gắng giải quyết doc2.pdfbằng cách sử dụng filelược đồ URI: file:///C:/superuser/doc2.pdf- có vẻ công bằng với tôi (dán cùng một URI vào Runhộp thoại trong Windows 7 khiến trình đọc PDF mặc định của tôi (Sumatra PDF ) để mở tệp) - nhưng tại sao Adobe Reader X lại yêu cầu trình duyệt mặc định xử lý PDF?

Để trả lời, tôi tiếp tục đào. Mở doc1.pdfbằng notepad ++ cho thấy siêu liên kết đã được mã hóa bằng URILoại hành động (xem trang 653 và 662 trong Định dạng tài liệu di động Adobe, Tài liệu tham khảo PDF, phiên bản 1.7, phiên bản thứ sáu - http://wwwimages.adobe.com/www.adobe .com / nội dung / đập / Adobe / en / devnet / pdf / pdfs / pdf_Vference_1-7.pdf ):

/Type/Action/S/URI/URI(doc2.pdf)

Tham chiếu PDF (tr. 662) nêu sau đây về URILoại hành động:

Mã định danh tài nguyên thống nhất (URI) là một chuỗi xác định (giải quyết) một tài nguyên trên Internet Internet thường là một tệp là đích của một liên kết siêu văn bản, mặc dù nó cũng có thể phân giải thành truy vấn hoặc thực thể khác.

Vì vậy, những gì đầu tiên trông giống như một lỗi lớn trong Adobe Reader X bắt đầu giống như một triển khai công bằng. Ít nhất, tại thời điểm này tôi đã tìm ra lý do tại sao Adobe Reader X hoạt động giống như vậy - dẫn đến một câu hỏi mới để trả lời: làm thế nào để tôi mã hóa đúng một siêu liên kết tệp (ví dụ: một liên kết đến doc2.pdf) sao cho PDF kết quả tạo ra Adobe Reader X tự xử lý liên kết (thay vì yêu cầu trình duyệt mặc định thực hiện công việc của nó)?

Để trả lời rằng tôi đã xem xét kỹ hơn về đặc tả PDF và tìm thấy Loại hành động Launch- về loại đó, tham chiếu PDF nêu rõ như sau (tr. 659):

Một hành động khởi chạy sẽ khởi chạy một ứng dụng hoặc mở hoặc in một tài liệu.

Vì vậy, bằng cách thực hiện thay đổi sau (sử dụng notepad ++):

Thay thế:

/Type/Action/S/URI/URI(doc2.pdf)

Với cái này:

/Type/Action/S/Launch/F(doc2.pdf)

... Adobe Reader X sau đó giải quyết liên kết bằng cách mở doc2.pdftệp trong một cửa sổ riêng / một phiên bản khác của Adobe Reader X - một lần nữa giả sử tôi đã bỏ Open cross-document links in same windowchọn tùy chọn (hooray !!).

Và bây giờ, đến câu hỏi thực tế / cuối cùng mà tôi chưa giải quyết được - có cách nào tôi có thể khiến MS Word 2007 (hoặc mới hơn) mã hóa các siêu liên kết tệp tương đối (ví dụ: một siêu liên kết trỏ đến, ví dụ: một tệp PDF khác) bằng cách sử dụng Loại hành động Launchthay vì URI(cả hai loại được chỉ định trên trang 653 của Định dạng tài liệu di động Adobe, Tài liệu tham khảo PDF, phiên bản 1.7, phiên bản thứ sáu - http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en /devnet/pdf/pdfs/pdf_Vference_1-7.pdf )? Hoặc là giải pháp duy nhất để thực hiện một số loại ứng dụng hậu xử lý có thể thay đổi tất cả các URIsiêu liên kết tệp được mã hóa "sai" thành Launchtương đương của chúng ?

Tôi biết điều này có thể gây ra nhiều "TLDR" - nhưng nếu bạn quản lý để đến đây tôi thực sự đánh giá cao sự quan tâm của bạn và tôi hy vọng rằng bạn hoặc ai đó có thể chỉ cho tôi đi đúng hướng.

Cảm ơn.


2
Không chắc chắn nếu bình luận 'đụng' một câu hỏi, nhưng điều này đáng để đọc.
Tanner Faulkner

1
Cảm ơn câu hỏi của bạn. Nó tự nó chứa rất nhiều chi tiết và một giải pháp có thể. Bạn đã quản lý để tìm một cách tốt hơn để làm điều đó? Thay thế các hành động hoạt động tốt.
Xa

1
@Farish Thật không may. Cho đến bây giờ, sử dụng một bộ xử lý bài đã là giải pháp phù hợp với tôi. Nếu một ngày nào đó tôi tìm thấy một cách tốt hơn, tôi sẽ đăng một bản cập nhật ở đây :)
Lasse Christiansen

Câu trả lời:


2

Cảm ơn bạn cho bài viết tuyệt vời của bạn. Nó hoạt động! Lúc đầu không phải cho tôi nhưng sau đó tôi phát hiện ra bạn phải tắt 'chế độ được bảo vệ' trong adobe X. Tôi hoàn toàn không gặp phải vấn đề này trên adobe 9. Dường như với tôi rằng ngành công nghiệp đang đi ngược lại về chức năng trong tên bảo mật.

Vì vậy, trong Adobe Reader X làm:

  1. Hãy chắc chắn rằng các tài liệu chéo mở .. không được kiểm tra. (như bạn đã nói)
  2. Tắt chế độ được bảo vệ: Chỉnh sửa »Tùy chọn» Chung
  3. Tìm kiếm và thay thế /Type/Action/S/URI/URIbằng /Type/Action/S/Launch/F(cách sử dụng trình soạn thảo hex phù hợp

Không có giải pháp dễ dàng nào cho những gì chúng tôi muốn làm, đó là cho phép bất kỳ người dùng nào chỉ có trình đọc PDF không có cài đặt để bận tâm, điều hướng xung quanh một thư mục.
Nhưng cảm ơn một lần nữa cho tất cả công việc của bạn và ánh sáng nó ném vào chủ đề.


Tôi rất vui vì nó hoạt động bằng cách sử dụng ý tưởng của "bộ xử lý bài". Vì tôi đã đăng câu hỏi mà tôi vẫn chưa tìm được giải pháp tốt hơn, vì vậy tôi cũng sẽ tiếp tục sử dụng bước xử lý hậu kỳ cho đến khi có giải pháp tốt hơn. Cảm ơn bạn đã đóng góp :)
Lasse Christiansen

0

FWIW, tôi không nghĩ các liên kết hoạt động ở Sumatra nếu tên tệp chứa khoảng trắng (đặt dấu ngoặc kép quanh tên không giúp ích vì Word dường như loại bỏ các liên kết đó khi tạo liên kết). Tôi không tin rằng có thể thay đổi hành vi của Word, vì vậy ...

Giải pháp số 1: Sử dụng trình tạo PDF tốt hơn.

Giải pháp số 2: Tạo tệp PDF bằng Word như bình thường, sau đó sử dụng trình soạn thảo hex hoặc tiện ích dòng lệnh như http://stahlforce.com/dev/index.php?tool=rep để thay thế tất cả các phiên bản / Loại / yêu cầu bắt buộc Hành động / S / URI / URI ( với / Loại / Hành động / S / Khởi chạy / F ( .


0

Re. câu hỏi siêu liên kết.

MS Office Help nói rằng cài đặt 'cập nhật liên kết khi lưu' (nút Office / nút tùy chọn Word / nút nâng cao / nút cảm ứng Web) khiến việc chèn các siêu liên kết là tương đối. Nếu không được kiểm tra, chúng trở nên tuyệt đối. Tuy nhiên, cài đặt này không khác gì những nỗ lực của tôi. Những gì đã làm, là điểm mà tập tin đã được lưu. Để tạo liên kết tương đối, tôi mở một tệp trống mới và lưu nó vào một thư mục thích hợp trước khi chèn bất kỳ liên kết nào. Trong hộp 'Chèn siêu liên kết', chọn 'thư mục hiện có'. Thư mục hiển thị trong hộp sau đó là thư mục vừa được lưu trong cây - không hướng lên trên. tức là tương đối

Để tạo liên kết tuyệt đối, tôi mở một tệp trống mới và không lưu nó, tôi chèn liên kết. Bây giờ hộp chèn hiển thị thư mục hiện có ở cấp cao nhất. Đi sâu vào tập tin được liên kết đến và đường dẫn hiển thị ở dưới cùng của hộp là đường dẫn đầy đủ trở lại C :. . . . . .. (hiển thị ký tự ổ đĩa) tức là tuyệt đối.

Bằng cách di con trỏ qua các liên kết trong hai tệp Word sẽ hiển thị đường dẫn tuyệt đối đầy đủ trong cả hai trường hợp. Tuy nhiên, nếu thư mục Parent được sao chép sang ổ đĩa khác, liên kết tương đối sẽ mở thư mục trong ổ đĩa mới và liên kết tuyệt đối sẽ quay trở lại thư mục ổ C: Tôi muốn xem gì. Tôi chưa khám phá ra cách tạo cả hai loại liên kết trong một tệp. Nhưng dù sao tôi cũng không cần thứ này. Tôi đã có thể chuyển đổi cả tệp MS Word của mình sang pdf bằng cách sửa đổi chỉnh sửa hex của bạn ở trên và cả hai đều hoạt động, một ở chế độ tuyệt đối khác.

Re. 'phương pháp chỉnh sửa hex' của bạn

Nó làm việc tốt cho tôi trong một số trường hợp và không phải những người khác. Tôi thấy rằng tôi phải đảm bảo tên tệp đích không có khoảng trắng trong tham. Tôi thay thế chúng bằng biểu tượng gạch dưới. Sau đó, họ làm việc.


0

Bây giờ tôi đã chạm đáy điều này càng xa càng tốt cho bản thân mình. Vì nó liên quan trực tiếp đến câu hỏi ban đầu, tôi sẽ chuyển qua bản tóm tắt cuối cùng của mình.

Re. liên kết tuyệt đối và tương đối trong cùng một tài liệu

nhìn vào đường dẫn hiển thị ở dưới cùng của hộp siêu liên kết. Nếu thư mục cấp cao nhất là thư mục bạn chọn thì liên kết sẽ liên quan đến nó. Để làm cho nó tuyệt đối sử dụng cấu trúc cây trong hộp 'chèn' để khoan ngược lên trên tất cả các cách để ký tự ổ đĩa. Mặc định là cho các liên kết tương đối khi tệp lần đầu tiên được lưu vào thư mục 'cha mẹ'.

Các bước để tạo một thư mục liên kết chỉ mục có thể di chuyển

(với tài liệu 'chỉ mục' liên kết đến các tệp trong thư mục con.)

  1. Tạo một thư mục mới ở bất cứ nơi nào sẽ là thư mục sẽ được vận chuyển (thư mục 'The Parent').

  2. Tạo hoặc đặt các thư mục con với các tệp của chúng vào Parent.

  3. Bây giờ hãy mở một tài liệu Word 2007 sẽ là 'tài liệu chỉ mục' của bạn. Trước khi chèn bất kỳ liên kết nào, hãy lưu tệp này vào 'cha mẹ' của bạn.

  4. Bây giờ làm 'chèn siêu liên kết'. Hộp 'chèn siêu liên kết' sẽ hiển thị cấu trúc cây thư mục / tệp xuống từ 'cha mẹ' tức là tương đối. Để thực hiện một liên kết tuyệt đối khoan lên trên tất cả các cách để ký tự ổ đĩa.

  5. Lưu tệp Word sẽ hoạt động như 'tài liệu chỉ mục' của bạn

  6. Để chuyển đổi 'tài liệu chỉ mục' thành pdf, hãy mở tệp từ và lưu dưới dạng PDF. Phiên bản tài liệu Index này sẽ mở các tệp mục tiêu thông qua trình duyệt tải xuống hoặc hiển thị dưới dạng PDF trong trình duyệt.

  7. Để làm cho tài liệu 'Index.pdf' mở các liên kết trong ứng dụng gốc của chúng, hãy sửa đổi tệp bằng phương pháp chỉnh sửa hex được mô tả trước đó và subsite / Type / Action / S / URI / URI (for / Type / Action / S / Launch / F (

  8. 3. Lưu ý quan trọng! Trước khi sửa đổi tệp .pdf, đảm bảo tất cả tên thư mục và tệp không có khoảng trắng. Không gian phụ với dấu gạch dưới hoặc dấu gạch ngang.

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.