Чи можу я зробити векторні (SVG) скріншоти Emacs?


15

gtk-vector-screenshotПрограма може використовуватися , щоб взяти векторні скріншоти додатків Gtk-3. Здається, це спрацює, попросивши програму перемалювати себе на полотні SVG.

Emacs в GNU / Linux може бути побудований за допомогою Gtk +, але намагаючись використовувати вищезазначений додаток у вікні Emacs, створюється скріншот, який містить лише елементи GUI, такі як панель меню; буфери не надаються (я намагався з Каїром і без нього). Це не надто дивно, враховуючи, що відображення буфера Emacs відбувається на досить низькому рівні.

І все-таки, чи є можливість зробити масштабовані векторні скріншоти Emacs ?

Відповіді:


2

Згідно з документацією, віджети Gtk + у Emacs є:

  • меню,
  • діалоги,
  • панелі інструментів і
  • смуги прокрутки

Буфери надає сам Emacs. Ні буфер, ні рядки в буфері не є віджетами Gtk +. Це означає, що вони нічого не знають про функцію експорту віджетів Gtk +.

Найкраще, що ви можете зробити, - це використовувати htmlfontify-bufferдля вбудовування створеного HTML у свій SVG, що містить віджети. Але для цього знадобиться додаткова робота для об'єднання HTML і SVG. Але майте на увазі, що htmlfontify-bufferце також має деякі обмеження і працює не з кожним буфером.


Я не впевнений, що це відповідає на питання. Я згадував take-vector-screenshotяк приклад, але також зазначив, що не дивно, що це не працює. htmlfontify-bufferмає занадто багато обмежень, щоб дійсно кваліфікуватися (він не відображатиме накладки, рядки на дисплеї, обертання рядків, запасний шрифт тощо)
Clément

1
@ Clément Коротка відповідь: ніяк.
закінчення

Це особиста думка чи у вас є докази, які підтверджують це твердження? З огляду на кількість реквізитів візуалізації (Каїр, безпосередньо через X, Gtk та ін.), Які є у Emacs, можна було б уявити, що невеликого підключення до одного з них може бути достатньо.
Клемент

2
@ Clément Gtk + може надати SVG, оскільки Gtk + використовує Каїр, у якому є бекенд для SVG. Emacs не використовує Cairo для візуалізації буфера. Але для Каїра є експериментальна галузь . Можливо, найближчим часом це можливо.
закінчення

1

Це можливо в Каїрі будує!

(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.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.