Code to process export of PNG and JPG images.
* org-e-groff.el (org-e-groff-inline-image-rules): Added PNG and JPG as valid inline suffixes. (org-e-groff-raster-to-ps): Variable that contains the command to execute raster to eps conversion. (org-e-groff--letter-head): Updated logic to handle empty FROM/TO in letter classes. (org-e-groff-link--inline-image): Added logic to process raster images.
This commit is contained in:
parent
d0ad93075e
commit
d46887f206
|
@ -234,8 +234,8 @@ order to reproduce the default set-up:
|
|||
;;; Links
|
||||
|
||||
(defcustom org-e-groff-inline-image-rules
|
||||
'(("file" . "\\.\\(pdf\\|ps\\|eps\\|pic\\)\\'")
|
||||
("fuzzy" . "\\.\\(pdf\\|ps\\|eps\\|pic\\)\\'"))
|
||||
'(("file" . "\\.\\(jpg\\|png\\|pdf\\|ps\\|eps\\|pic\\)\\'")
|
||||
("fuzzy" . "\\.\\(jpg\\|png\\|pdf\\|ps\\|eps\\|pic\\)\\'"))
|
||||
"Rules characterizing image files that can be inlined into Groff.
|
||||
|
||||
A rule consists in an association whose key is the type of link
|
||||
|
@ -519,6 +519,17 @@ These are the .aux, .log, .out, and .toc files."
|
|||
:group 'org-export-e-groff
|
||||
:type 'string)
|
||||
|
||||
(defcustom org-e-groff-raster-to-ps nil
|
||||
"Command used to convert raster to EPS. Nil for no conversion. Make sure that
|
||||
`org-e-groff-inline-image-rules' is adjusted accordingly if not conversion is being
|
||||
done. In this case, remove the entries for jpg and png in the file and fuzzy lists."
|
||||
:group 'org-export-e-groff
|
||||
:type '(choice
|
||||
(repeat :tag "Shell Command Sequence" (string :tag "Shell Command"))
|
||||
(const :tag "sam2p" "a=%s;b=%s;sam2p ${a} ${b} ;grep -v BeginData ${b} > b_${b};mv b_${b} ${b}" )
|
||||
(const :tag "NetPNM" "a=%s;b=%s;pngtopnm ${a} | pnmtops -noturn > ${b}" )
|
||||
(const :tag "None" nil)))
|
||||
|
||||
|
||||
;; Adding GROFF as a block parser to make sure that its contents
|
||||
;; does not execute
|
||||
|
@ -705,12 +716,16 @@ See `org-e-groff-text-markup-alist' for details."
|
|||
|
||||
|
||||
;; If FROM then get data from FROM
|
||||
(setq from-data
|
||||
(replace-regexp-in-string "\\.P\n" "" from-data))
|
||||
|
||||
(setq to-data
|
||||
(replace-regexp-in-string "\\.P\n" "" to-data))
|
||||
|
||||
(if from-data
|
||||
(setq from-data
|
||||
(replace-regexp-in-string "\\.P\n" "" from-data))
|
||||
(setq from-data ""))
|
||||
|
||||
(if to-data
|
||||
(setq to-data
|
||||
(replace-regexp-in-string "\\.P\n" "" to-data))
|
||||
(setq from-data ""))
|
||||
|
||||
(concat
|
||||
(cond
|
||||
(from-data
|
||||
|
@ -1309,9 +1324,15 @@ used as a communication channel."
|
|||
|
||||
;; Now clear ATTR from any special keyword and set a default value
|
||||
;; if nothing is left. Return proper string.
|
||||
|
||||
(concat
|
||||
(cond
|
||||
((and org-e-groff-raster-to-ps
|
||||
(or (string-match ".\.png$" path)
|
||||
(string-match ".\.jpg$" path)))
|
||||
(let ((eps-path (concat path ".eps")))
|
||||
(shell-command (format org-e-groff-raster-to-ps path eps-path))
|
||||
(format "\n.DS L F\n.PSPIC %s \"%s\" %s %s\n.DE "
|
||||
placement eps-path width height)))
|
||||
((string-match ".\.pic$" path)
|
||||
(format "\n.PS\ncopy \"%s\"\n.PE" path))
|
||||
(t (format "\n.DS L F\n.PSPIC %s \"%s\" %s %s\n.DE "
|
||||
|
@ -1335,6 +1356,8 @@ INFO is a plist holding contextual information. See
|
|||
((member type '("http" "https" "ftp" "mailto"))
|
||||
(concat type ":" raw-path))
|
||||
((string= type "file")
|
||||
(when (string-match "\\(.+\\)::.+" raw-path)
|
||||
(setq raw-path (match-string 1 raw-path)))
|
||||
(if (file-name-absolute-p raw-path)
|
||||
(concat "file://" (expand-file-name raw-path))
|
||||
(concat "file://" raw-path)))
|
||||
|
@ -1398,7 +1421,6 @@ INFO is a plist holding contextual information. See
|
|||
;; No path, only description. Try to do something useful.
|
||||
(t (format org-e-groff-link-with-unknown-path-format desc)))))
|
||||
|
||||
|
||||
;;; Paragraph
|
||||
|
||||
(defun org-e-groff-paragraph (paragraph contents info)
|
||||
|
|
Loading…
Reference in New Issue