Tôi có thể chụp ảnh màn hình vector (SVG) của Emacs không?


15

Các gtk-vector-screenshotchương trình có thể được sử dụng để chụp ảnh màn hình vector của các ứng dụng Gtk-3. Nó dường như hoạt động bằng cách yêu cầu ứng dụng vẽ lại lên khung vẽ SVG.

Emacs trên GNU / Linux có thể được xây dựng bằng Gtk +, nhưng cố gắng sử dụng ứng dụng nói trên trên cửa sổ Emacs dẫn đến một ảnh chụp màn hình chỉ chứa các thành phần GUI như thanh menu; bộ đệm không được kết xuất (tôi đã thử với và không có Cairo). Điều này không quá ngạc nhiên, vì việc kết xuất bộ đệm của Emacs xảy ra ở mức khá thấp.

Tuy nhiên, có cách nào để chụp ảnh màn hình vector có thể mở rộng của Emacs không?

Câu trả lời:


2

Theo tài liệu Gtk + widget trong Emacs là:

  • thực đơn,
  • hộp thoại,
  • thanh công cụ và
  • thanh cuộn

Bộ đệm được hiển thị bởi chính Emacs. Cả bộ đệm lẫn dòng trong bộ đệm đều không phải là widget Gtk +. Điều này có nghĩa là họ không biết gì về chức năng xuất của các widget Gtk +.

Điều tốt nhất bạn có thể làm là sử dụng htmlfontify-bufferđể nhúng HTML được tạo vào SVG có chứa các widget. Nhưng điều này sẽ yêu cầu một số công việc bổ sung để hợp nhất HTML và SVG. Nhưng hãy lưu ý rằng htmlfontify-buffercũng có một số hạn chế và không hoạt động với mọi bộ đệm.


Tôi không chắc điều này trả lời câu hỏi. Tôi đã đề cập take-vector-screenshotnhư một ví dụ, nhưng tôi cũng đã đề cập rằng không có gì đáng ngạc nhiên khi nó không hoạt động. htmlfontify-buffercó quá nhiều hạn chế để thực sự đủ điều kiện (nó sẽ không hiển thị lớp phủ, chuỗi hiển thị, kết thúc dòng, dự phòng phông chữ, v.v.)
Clément

1
@ Clément Câu trả lời ngắn gọn là: không đời nào.
ceving

Đây là ý kiến ​​cá nhân, hay bạn có bằng chứng ủng hộ yêu cầu đó? Với số lượng phụ trợ kết xuất (Cairo, trực tiếp thông qua X, Gtk, v.v.) mà Emacs có, người ta có thể tưởng tượng rằng một điều chỉnh nhỏ đối với một trong số chúng có thể là đủ.
Clément

2
@ Clément Gtk + có thể kết xuất với SVG, vì Gtk + sử dụng Cairo, có phần phụ trợ cho SVG. Emacs không sử dụng Cairo để kết xuất bộ đệm. Nhưng có một chi nhánh thử nghiệm cho Cairo. Có lẽ trong tương lai gần nó có thể là có thể.
ceving 17/2/2016

1

Có thể ở Cairo xây dựng!

(x-export-frames FRAMES TYPE)

Return image data of FRAMES in TYPE format.
FRAMES should be nil (the selected frame), a frame, or a list of
frames (each of which corresponds to one page).  Each frame should be
visible.  Optional arg TYPE should be either `pdf' (default), `png',
`postscript', or `svg'.  Supported types are determined by the
compile-time configuration of cairo.
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.