Tôi đang làm việc trên một dự án cho OSX, nơi người dùng có thể chọn một bộ sưu tập các tài liệu (từ bất kỳ ứng dụng nào) mà tôi cần để tạo PDF từ đó. Hộp thoại Macintosh Print chuẩn có nút PDF có một số lệnh liên quan đến PDF bao gồm "Lưu dưới dạng PDF ...". Tuy nhiên, tôi cần tạo tệp PDF mà không yêu cầu tương tác của người dùng. Tôi lý tưởng muốn điều này để làm việc với bất kỳ loại tài liệu.Làm thế nào để lập trình tạo PDF từ bất kỳ tài liệu nào trên OSX?
Dưới đây là các tùy chọn Tôi đã khám phá cho đến nay:
- hành động Automator. Có một thư viện PDF cho Automator nhưng nó cung cấp các hành động để làm việc với các tệp PDF, không tạo ra chúng. Có một hành động tìm kiếm để in bất kỳ tệp nào mà chỉ cho một máy in thực.
- AppleScript. Một số ứng dụng có khả năng tạo tệp PDF (ví dụ: nếu bạn gửi 'lưu tài liệu trong "test.pdf"' vào Trang, nó sẽ tạo tệp PDF (nhưng điều này chỉ hoạt động cho Trang - Tôi cần hỗ trợ cho bất kỳ loại tài liệu nào) .
- Tuỳ chỉnh máy in. tôi có thể tạo ra một trình điều khiển máy in ảo và sau đó sử dụng các công cụ tự động hành động nhưng tôi không thích ý tưởng về bối rối cho người dùng một máy in thêm trong danh sách in.
Hy vọng của tôi là có một số cách để tương tác với ứng dụng đang hoạt động như thể người dùng đang thực hiện các bước sau:
- Làm Cmd-P (mở hộp thoại in)
- Nhấp vào nút "PDF"
- Chọn "Save as PDF ..." (mục thứ hai trong menu)
- Gõ vào tên tập tin trong tiết kiệm thoại
- Bấm "Save"
Nếu đó là cách tiếp cận tốt nhất (phải không?) thì vấn đề thực sự là: làm cách nào để gửi sự kiện giao diện người dùng đến ứng dụng bên ngoài (tổ hợp phím, sự kiện chuột, lựa chọn menu)?
Cập nhật: Chỉ cần làm rõ một điểm: tài liệu tôi cần chuyển đổi sang PDF là tài liệu được tạo bởi các ứng dụng khác. Ví dụ: người dùng có thể chọn tài liệu Word hoặc bảng tính Số hoặc bản vẽ OmniGraffle hoặc Trang Web. Mẫu số chung là mỗi tài liệu này có một ứng dụng liên quan và ứng dụng đó biết cách in nó (và OSX biết cách render kết xuất in ra tệp PDF).
Vì vậy, các mẫu tại Cocoa Dev Central không giúp đỡ vì chúng đang tạo PDF từ đơn đăng ký của tôi.
Cảm ơn! Đó chính là con trỏ tôi đang tìm kiếm. –
-1 Điều này có vẻ giống như một cách tiếp cận tốt nếu bạn mở một tệp trong safari nhưng tôi chắc chắn bạn không muốn mã đúng cho mọi ứng dụng có thể – mcgrailm