* emacs 30.5.0 editing epub @ 2023-03-15 18:35 H.-J. Heitländer 2023-03-16 5:05 ` Michael Heerdegen 2023-03-16 9:22 ` emacs 30.5.0 editing epub Stephen Berman 0 siblings, 2 replies; 37+ messages in thread From: H.-J. Heitländer @ 2023-03-15 18:35 UTC (permalink / raw) To: gnu emacs Hi there, trying to get my feet wet with emacs and lisp. ... well it seems I am drowning... The problem: I am editing epub archives and any saves that I am doing result in <snip> ***backtrace*** Debugger entered--Lisp error: (wrong-type-argument stringp nil) doc-view--revert-buffer(#f(compiled-function (&rest args) #<bytecode -0x1d096aa50772e2b6>) t t) apply(doc-view--revert-buffer #f(compiled-function (&rest args) #<bytecode -0x1d096aa50772e2b6>) (t t)) #f(advice doc-view--revert-buffer :around #f(compiled-function (&rest args) #<bytecode -0x1d096aa50772e2b6>))(t t) archive--mode-revert(#f(advice doc-view--revert-buffer :around #f(compiled-function (&rest args) #<bytecode -0x1d096aa50772e2b6>)) nil nil) apply(archive--mode-revert #f(advice doc-view--revert-buffer :around #f(compiled-function (&rest args) #<bytecode -0x1d096aa50772e2b6>)) (nil nil)) #f(advice archive--mode-revert :around #f(advice doc-view--revert-buffer :around #f(compiled-function (&rest args) #<bytecode -0x1d096aa50772e2b6>)))(nil nil) revert-buffer() archive-write-file-member() run-hook-with-args-until-success(archive-write-file-member) basic-save-buffer(t) save-buffer(1) funcall-interactively(save-buffer 1) command-execute(save-buffer) </snip> For the moment I can live with that as in reality the epub is being saved. My problem is that from that moment on the display of the epub subfile (<name>.html) loses the utf-8 display. (oh, and every other file is being displayed in the same - wrong - way.) The content is shown as (example) <snip> \342\200\234Nicely done. Now let\342\200\231s get that equipment on board.\342\200\234 </p> </snip> It should have been shown as <snip> "Nicely done. Now let's get that equipment on board." </p> </snip> I searched the internet without any result. Don't know which part of documentation to read. Question: How do I switch the display back to show the contents in the expected way??? TX Heiner ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: emacs 30.5.0 editing epub 2023-03-15 18:35 emacs 30.5.0 editing epub H.-J. Heitländer @ 2023-03-16 5:05 ` Michael Heerdegen 2023-03-16 6:57 ` H.-J. Heitländer 2023-03-16 9:22 ` emacs 30.5.0 editing epub Stephen Berman 1 sibling, 1 reply; 37+ messages in thread From: Michael Heerdegen @ 2023-03-16 5:05 UTC (permalink / raw) To: help-gnu-emacs H.-J. Heitländer <Heiner.Heitlaender@posteo.de> writes: > The problem: > > I am editing epub archives and any saves that I am doing result in > > <snip> > > ***backtrace*** > > Debugger entered--Lisp error: (wrong-type-argument stringp nil) > > doc-view--revert-buffer(#f(compiled-function (&rest args) #<bytecode > -0x1d096aa50772e2b6>) t t) No idea why this is happening... but your backtrace is not very informative because it was created using compiled Elisp code. Could you please try to recreate a backtrace using interpreted Elisp? The only thing you need to do is to load the .el files of the according libraries ("doc-view.el" and "files.el" should suffice) and then do the same as before. TIA, Michael. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: emacs 30.5.0 editing epub 2023-03-16 5:05 ` Michael Heerdegen @ 2023-03-16 6:57 ` H.-J. Heitländer 2023-03-17 0:44 ` Michael Heerdegen 2023-03-17 1:13 ` Michael Heerdegen 0 siblings, 2 replies; 37+ messages in thread From: H.-J. Heitländer @ 2023-03-16 6:57 UTC (permalink / raw) To: Michael Heerdegen; +Cc: gnu emacs Hi Michael, thanks for getting involved. Nevertheless I would be quite content with a temporary solution by being able to get emacs to redisplay in the correct form. Thank you Heiner Appended backtrace: load-file: arc-mode.el, doc-view.el, files.el here we go: <snip> Debugger entered--Lisp error: (wrong-type-argument stringp nil) write-region(nil nil nil) (if (equal buffer-file-name doc-view--buffer-file-name) nil (doc-view-make-safe-dir doc-view-cache-directory) (write-region nil nil doc-view--buffer-file-name)) (let ((revert-buffer-preserve-modes t)) (apply orig-fun args) (if (equal buffer-file-name doc-view--buffer-file-name) nil (doc-view-make-safe-dir doc-view-cache-directory) (write-region nil nil doc-view--buffer-file-name))) (closure ((args t t) (orig-fun . #f(compiled-function (&rest args) #<bytecode -0x1d33bbea90aba2b6>)) revert-buffer-preserve-modes) nil (let ((revert-buffer-preserve-modes t)) (apply orig-fun args) (if (equal buffer-file-name doc-view--buffer-file-name) nil (doc-view-make-safe-dir doc-view-cache-directory) (write-region nil nil doc-view--buffer-file-name))))() funcall((closure ((args t t) (orig-fun . #f(compiled-function (&rest args) #<bytecode -0x1d33bbea90aba2b6>)) revert-buffer-preserve-modes) nil (let ((revert-buffer-preserve-modes t)) (apply orig-fun args) (if (equal buffer-file-name doc-view--buffer-file-name) nil (doc-view-make-safe-dir doc-view-cache-directory) (write-region nil nil doc-view--buffer-file-name))))) (if (and (eq 'pdf doc-view-doc-type) (executable-find "pdfinfo")) (if (= 0 (call-process "pdfinfo" nil nil nil doc-view--buffer-file-name)) (funcall --cl-revert--) (if (called-interactively-p 'interactive) (progn (message "Can't revert right now because the file is corrupt...")))) (funcall --cl-revert--)) (let* ((--cl-revert-- #'(lambda nil (let ((revert-buffer-preserve-modes t)) (apply orig-fun args) (if (equal buffer-file-name doc-view--buffer-file-name) nil (doc-view-make-safe-dir doc-view-cache-directory) (write-region nil nil doc-view--buffer-file-name)))))) (if (and (eq 'pdf doc-view-doc-type) (executable-find "pdfinfo")) (if (= 0 (call-process "pdfinfo" nil nil nil doc-view--buffer-file-name)) (funcall --cl-revert--) (if (called-interactively-p 'interactive) (progn (message "Can't revert right now because the file is corrupt...")))) (funcall --cl-revert--))) doc-view--revert-buffer(#f(compiled-function (&rest args) #<bytecode -0x1d33bbea90aba2b6>) t t) apply(doc-view--revert-buffer #f(compiled-function (&rest args) #<bytecode -0x1d33bbea90aba2b6>) (t t)) #f(advice doc-view--revert-buffer :around #f(compiled-function (&rest args) #<bytecode -0x1d33bbea90aba2b6>))(t t) apply(#f(advice doc-view--revert-buffer :around #f(compiled-function (&rest args) #<bytecode -0x1d33bbea90aba2b6>)) t t nil) (let ((coding-system-for-read 'no-conversion)) (apply orig-fun t t (cdr (cdr args)))) (let ((no (archive-get-lineno))) (setq archive-files nil) (let ((coding-system-for-read 'no-conversion)) (apply orig-fun t t (cdr (cdr args)))) (archive-mode) (goto-char archive-file-list-start) (archive-next-line no)) archive--mode-revert(#f(advice doc-view--revert-buffer :around #f(compiled-function (&rest args) #<bytecode -0x1d33bbea90aba2b6>)) nil nil) apply(archive--mode-revert #f(advice doc-view--revert-buffer :around #f(compiled-function (&rest args) #<bytecode -0x1d33bbea90aba2b6>)) (nil nil)) #f(advice archive--mode-revert :around #f(advice doc-view--revert-buffer :around #f(compiled-function (&rest args) #<bytecode -0x1d33bbea90aba2b6>)))(nil nil) funcall(#f(advice archive--mode-revert :around #f(advice doc-view--revert-buffer :around #f(compiled-function (&rest args) #<bytecode -0x1d33bbea90aba2b6>))) nil nil) (let ((revert-buffer-in-progress-p t) (revert-buffer-preserve-modes preserve-modes) (state (and (boundp 'read-only-mode--state) (list read-only-mode--state)))) (funcall (or revert-buffer-function #'revert-buffer--default) ignore-auto noconfirm) (if state (progn (setq buffer-read-only (car state)) (set (make-local-variable 'read-only-mode--state) (car state))))) revert-buffer() (if (not archive-remote) (revert-buffer) (archive-maybe-update nil)) (save-restriction (message "Updating archive...") (widen) (let ((writer (save-current-buffer (set-buffer archive-superior-buffer) (archive-name "write-file-member"))) (archive (save-current-buffer (set-buffer archive-superior-buffer) (archive-maybe-copy (buffer-file-name))))) (if (fboundp writer) (funcall writer archive archive-subfile-mode) (archive-*-write-file-member archive archive-subfile-mode (symbol-value writer))) (set-buffer-modified-p nil) (message "Updating archive...done")) (set-buffer archive-superior-buffer) (if (not archive-remote) (revert-buffer) (archive-maybe-update nil))) (save-excursion (save-restriction (message "Updating archive...") (widen) (let ((writer (save-current-buffer (set-buffer archive-superior-buffer) (archive-name "write-file-member"))) (archive (save-current-buffer (set-buffer archive-superior-buffer) (archive-maybe-copy (buffer-file-name))))) (if (fboundp writer) (funcall writer archive archive-subfile-mode) (archive-*-write-file-member archive archive-subfile-mode (symbol-value writer))) (set-buffer-modified-p nil) (message "Updating archive...done")) (set-buffer archive-superior-buffer) (if (not archive-remote) (revert-buffer) (archive-maybe-update nil)))) archive-write-file-member() run-hook-with-args-until-success(archive-write-file-member) (or (run-hook-with-args-until-success 'local-write-file-hooks) (run-hook-with-args-until-success 'write-file-functions) (let ((dir (file-name-directory (expand-file-name buffer-file-name)))) (if (file-exists-p dir) nil (if (y-or-n-p (format-message "Directory `%s' does not exist; create? " dir)) (make-directory dir t) (error "Canceled"))) (setq setmodes (basic-save-buffer-1)))) (if (run-hook-with-args-until-success 'write-contents-functions) nil (or buffer-file-name (let ((filename (expand-file-name (read-file-name "File to save in: " nil (expand-file-name ...))))) (if (file-exists-p filename) (if (file-directory-p filename) (error "%s is a directory" filename) (if (y-or-n-p (format-message "File `%s' exists; overwrite? " filename)) nil (error "Canceled")))) (set-visited-file-name filename))) (vc-before-save) (or (run-hook-with-args-until-success 'local-write-file-hooks) (run-hook-with-args-until-success 'write-file-functions) (let ((dir (file-name-directory (expand-file-name buffer-file-name)))) (if (file-exists-p dir) nil (if (y-or-n-p (format-message "Directory `%s' does not exist; create? " dir)) (make-directory dir t) (error "Canceled"))) (setq setmodes (basic-save-buffer-1))))) (save-restriction (widen) (save-excursion (and (> (point-max) (point-min)) (not find-file-literally) (null buffer-read-only) (/= (char-after (1- (point-max))) 10) (not (and (eq selective-display t) (= (char-after (1- ...)) 13))) (or (eq require-final-newline t) (eq require-final-newline 'visit-save) (and require-final-newline (y-or-n-p (format "Buffer %s does not end in newline. Add one? " (buffer-name))))) (save-excursion (goto-char (point-max)) (insert 10)))) (condition-case err (run-hooks 'before-save-hook) ((debug error) (message "Before-save hook error: %S" err) nil)) (if (run-hook-with-args-until-success 'write-contents-functions) nil (or buffer-file-name (let ((filename (expand-file-name (read-file-name "File to save in: " nil ...)))) (if (file-exists-p filename) (if (file-directory-p filename) (error "%s is a directory" filename) (if (y-or-n-p ...) nil (error "Canceled")))) (set-visited-file-name filename))) (vc-before-save) (or (run-hook-with-args-until-success 'local-write-file-hooks) (run-hook-with-args-until-success 'write-file-functions) (let ((dir (file-name-directory (expand-file-name buffer-file-name)))) (if (file-exists-p dir) nil (if (y-or-n-p (format-message "Directory `%s' does not exist; create? " dir)) (make-directory dir t) (error "Canceled"))) (setq setmodes (basic-save-buffer-1))))) (if buffer-file-name (progn (if save-buffer-coding-system (setq save-buffer-coding-system last-coding-system-used) (setq buffer-file-coding-system last-coding-system-used)) (setq buffer-file-number (file-attribute-file-identifier (file-attributes buffer-file-name))) (if setmodes (condition-case nil (progn (if (condition-case err ... ...) nil (set-file-extended-attributes buffer-file-name ...))) (error nil))) (vc-after-save))) (delete-auto-save-file-if-necessary recent-save)) (let ((recent-save (recent-auto-save-p)) setmodes) (or (null buffer-file-name) (verify-visited-file-modtime (current-buffer)) (not (file-exists-p buffer-file-name)) (yes-or-no-p (format "%s has changed since visited or saved. Save anywa..." (file-name-nondirectory buffer-file-name))) (user-error "Save not confirmed")) (save-restriction (widen) (save-excursion (and (> (point-max) (point-min)) (not find-file-literally) (null buffer-read-only) (/= (char-after (1- (point-max))) 10) (not (and (eq selective-display t) (= (char-after ...) 13))) (or (eq require-final-newline t) (eq require-final-newline 'visit-save) (and require-final-newline (y-or-n-p (format "Buffer %s does not end in newline. Add one? " ...)))) (save-excursion (goto-char (point-max)) (insert 10)))) (condition-case err (run-hooks 'before-save-hook) ((debug error) (message "Before-save hook error: %S" err) nil)) (if (run-hook-with-args-until-success 'write-contents-functions) nil (or buffer-file-name (let ((filename (expand-file-name ...))) (if (file-exists-p filename) (if (file-directory-p filename) (error "%s is a directory" filename) (if ... nil ...))) (set-visited-file-name filename))) (vc-before-save) (or (run-hook-with-args-until-success 'local-write-file-hooks) (run-hook-with-args-until-success 'write-file-functions) (let ((dir (file-name-directory ...))) (if (file-exists-p dir) nil (if (y-or-n-p ...) (make-directory dir t) (error "Canceled"))) (setq setmodes (basic-save-buffer-1))))) (if buffer-file-name (progn (if save-buffer-coding-system (setq save-buffer-coding-system last-coding-system-used) (setq buffer-file-coding-system last-coding-system-used)) (setq buffer-file-number (file-attribute-file-identifier (file-attributes buffer-file-name))) (if setmodes (condition-case nil (progn (if ... nil ...)) (error nil))) (vc-after-save))) (delete-auto-save-file-if-necessary recent-save)) (run-hooks 'after-save-hook)) (if (or (buffer-modified-p) (and buffer-file-name (not (file-exists-p buffer-file-name)))) (let ((recent-save (recent-auto-save-p)) setmodes) (or (null buffer-file-name) (verify-visited-file-modtime (current-buffer)) (not (file-exists-p buffer-file-name)) (yes-or-no-p (format "%s has changed since visited or saved. Save anywa..." (file-name-nondirectory buffer-file-name))) (user-error "Save not confirmed")) (save-restriction (widen) (save-excursion (and (> (point-max) (point-min)) (not find-file-literally) (null buffer-read-only) (/= (char-after (1- ...)) 10) (not (and (eq selective-display t) (= ... 13))) (or (eq require-final-newline t) (eq require-final-newline 'visit-save) (and require-final-newline (y-or-n-p ...))) (save-excursion (goto-char (point-max)) (insert 10)))) (condition-case err (run-hooks 'before-save-hook) ((debug error) (message "Before-save hook error: %S" err) nil)) (if (run-hook-with-args-until-success 'write-contents-functions) nil (or buffer-file-name (let ((filename ...)) (if (file-exists-p filename) (if ... ... ...)) (set-visited-file-name filename))) (vc-before-save) (or (run-hook-with-args-until-success 'local-write-file-hooks) (run-hook-with-args-until-success 'write-file-functions) (let ((dir ...)) (if (file-exists-p dir) nil (if ... ... ...)) (setq setmodes (basic-save-buffer-1))))) (if buffer-file-name (progn (if save-buffer-coding-system (setq save-buffer-coding-system last-coding-system-used) (setq buffer-file-coding-system last-coding-system-used)) (setq buffer-file-number (file-attribute-file-identifier (file-attributes buffer-file-name))) (if setmodes (condition-case nil (progn ...) (error nil))) (vc-after-save))) (delete-auto-save-file-if-necessary recent-save)) (run-hooks 'after-save-hook)) (or noninteractive (not called-interactively) (files--message "(No changes need to be saved)"))) (save-current-buffer (if (buffer-base-buffer) (set-buffer (buffer-base-buffer))) (if (or (buffer-modified-p) (and buffer-file-name (not (file-exists-p buffer-file-name)))) (let ((recent-save (recent-auto-save-p)) setmodes) (or (null buffer-file-name) (verify-visited-file-modtime (current-buffer)) (not (file-exists-p buffer-file-name)) (yes-or-no-p (format "%s has changed since visited or saved. Save anywa..." (file-name-nondirectory buffer-file-name))) (user-error "Save not confirmed")) (save-restriction (widen) (save-excursion (and (> (point-max) (point-min)) (not find-file-literally) (null buffer-read-only) (/= (char-after ...) 10) (not (and ... ...)) (or (eq require-final-newline t) (eq require-final-newline ...) (and require-final-newline ...)) (save-excursion (goto-char ...) (insert 10)))) (condition-case err (run-hooks 'before-save-hook) ((debug error) (message "Before-save hook error: %S" err) nil)) (if (run-hook-with-args-until-success 'write-contents-functions) nil (or buffer-file-name (let (...) (if ... ...) (set-visited-file-name filename))) (vc-before-save) (or (run-hook-with-args-until-success 'local-write-file-hooks) (run-hook-with-args-until-success 'write-file-functions) (let (...) (if ... nil ...) (setq setmodes ...)))) (if buffer-file-name (progn (if save-buffer-coding-system (setq save-buffer-coding-system last-coding-system-used) (setq buffer-file-coding-system last-coding-system-used)) (setq buffer-file-number (file-attribute-file-identifier ...)) (if setmodes (condition-case nil ... ...)) (vc-after-save))) (delete-auto-save-file-if-necessary recent-save)) (run-hooks 'after-save-hook)) (or noninteractive (not called-interactively) (files--message "(No changes need to be saved)")))) basic-save-buffer(t) (let ((modp (buffer-modified-p)) (make-backup-files (or (and make-backup-files (not (eq arg 0))) (memq arg '(16 64))))) (and modp (memq arg '(16 64)) (setq buffer-backed-up nil)) (if (and modp (buffer-file-name) (not noninteractive) (not save-silently)) (message "Saving file %s..." (buffer-file-name))) (basic-save-buffer (called-interactively-p 'any)) (and modp (memq arg '(4 64)) (setq buffer-backed-up nil))) save-buffer(1) funcall-interactively(save-buffer 1) command-execute(save-buffer) </snip> Am 16.03.23 um 06:05 schrieb Michael Heerdegen: > H.-J. Heitländer<Heiner.Heitlaender@posteo.de> writes: > >> The problem: >> >> I am editing epub archives and any saves that I am doing result in >> >> <snip> >> >> ***backtrace*** >> >> Debugger entered--Lisp error: (wrong-type-argument stringp nil) >> >> doc-view--revert-buffer(#f(compiled-function (&rest args) #<bytecode >> -0x1d096aa50772e2b6>) t t) > No idea why this is happening... but your backtrace is not very > informative because it was created using compiled Elisp code. > > Could you please try to recreate a backtrace using interpreted Elisp? > The only thing you need to do is to load the .el files of the according > libraries ("doc-view.el" and "files.el" should suffice) and then do the > same as before. > > TIA, > > Michael. > > ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: emacs 30.5.0 editing epub 2023-03-16 6:57 ` H.-J. Heitländer @ 2023-03-17 0:44 ` Michael Heerdegen 2023-03-17 1:13 ` Michael Heerdegen 1 sibling, 0 replies; 37+ messages in thread From: Michael Heerdegen @ 2023-03-17 0:44 UTC (permalink / raw) To: help-gnu-emacs H.-J. Heitländer <Heiner.Heitlaender@posteo.de> writes: > Nevertheless I would be quite content with a temporary solution by > being able to get emacs to redisplay in the correct form. Please report this as a bug. Finding a temporary solution might not be easier than finding out what happens. All you need to do is either use M-x report-emacs-bug as described in (info "(emacs) Checklist") (a subnode of the info page that Stefan's suggested menu item leads to), or, if you don't yet have/ don't want to set up sending mails from inside Emacs, just write a mail like this to bug-gnu-emacs@gnu.org and include your backtrace (thanks for it) and a short description of what you did (most importantly, a short recipe: in particular, what buffer was current when you tried to save). A few lines suffice. > archive--mode-revert(#f(advice doc-view--revert-buffer :around > #f(compiled-function (&rest args) #<bytecode -0x1d33bbea90aba2b6>)) > nil nil) This looks odd: the two advices `archive--mode-revert' and `doc-view--revert-buffer' should not both be installed in a buffer at the same time. Michael. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: emacs 30.5.0 editing epub 2023-03-16 6:57 ` H.-J. Heitländer 2023-03-17 0:44 ` Michael Heerdegen @ 2023-03-17 1:13 ` Michael Heerdegen 2023-03-19 21:23 ` editing a PDF [Re: emacs 30.5.0 editing epub] gebser 1 sibling, 1 reply; 37+ messages in thread From: Michael Heerdegen @ 2023-03-17 1:13 UTC (permalink / raw) To: help-gnu-emacs H.-J. Heitländer <Heiner.Heitlaender@posteo.de> writes: > Hi Michael, > > thanks for getting involved. > > Nevertheless I would be quite content with a temporary solution by > being able to get emacs to redisplay in the correct form. BTW, I managed to copy an pdf-File into an epub Archive. Opened the archive and opened the pdf using doc-view. I was not able to provoke an error. Saving worked successfully however I tried. Michael. ^ permalink raw reply [flat|nested] 37+ messages in thread
* editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-17 1:13 ` Michael Heerdegen @ 2023-03-19 21:23 ` gebser 2023-03-19 23:59 ` Michael Heerdegen 0 siblings, 1 reply; 37+ messages in thread From: gebser @ 2023-03-19 21:23 UTC (permalink / raw) To: help-gnu-emacs On 3/16/23 9:13 PM, Michael Heerdegen wrote: > I managed to copy an pdf-File into an epub Archive. Opened the > archive and opened the pdf using doc-view. I was not able to provoke an > error. Saving worked successfully however I tried. > > Michael. How does one edit a PDF file in emacs? When I downloaded https://www.gnu.org.ua/software/direvent/manual/direvent.pdf, loaded it into emacs, and tried to edit it, I could see it it and read it, but I couldn't even highlight a part of the text so I could copy it... nor could I make any changes to it. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-19 21:23 ` editing a PDF [Re: emacs 30.5.0 editing epub] gebser @ 2023-03-19 23:59 ` Michael Heerdegen 2023-03-20 7:15 ` gebser 0 siblings, 1 reply; 37+ messages in thread From: Michael Heerdegen @ 2023-03-19 23:59 UTC (permalink / raw) To: help-gnu-emacs "gebser@mousecar.com" <gebser@mousecar.com> writes: > How does one edit a PDF file in emacs? When I downloaded > https://www.gnu.org.ua/software/direvent/manual/direvent.pdf, loaded > it into emacs, and tried to edit it, I could see it it and read it, > but I couldn't even highlight a part of the text so I could copy > it... nor could I make any changes to it. I don't think you want to edit pdf in Emacs: the file contents are not human readable, and Emacs doesn't provide features to allow graphical editing like those pdf editors (at least not built in). epub files can contain human readable parts like html, however. What I had written: >> I managed to copy an pdf-File into an epub Archive. Opened the >> archive and opened the pdf using doc-view. I was not able to provoke an >> error. Saving worked successfully however I tried. was only happening because I was trying around how to provoke the reported error. Michael. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-19 23:59 ` Michael Heerdegen @ 2023-03-20 7:15 ` gebser 2023-03-21 0:31 ` Michael Heerdegen 2023-03-21 6:28 ` Yuri Khan 0 siblings, 2 replies; 37+ messages in thread From: gebser @ 2023-03-20 7:15 UTC (permalink / raw) To: help-gnu-emacs On 3/19/23 7:59 PM, Michael Heerdegen wrote: > "gebser@mousecar.com" <gebser@mousecar.com> writes: > >> How does one edit a PDF file in emacs? When I downloaded >> https://www.gnu.org.ua/software/direvent/manual/direvent.pdf, loaded >> it into emacs, and tried to edit it, I could see it it and read it, >> but I couldn't even highlight a part of the text so I could copy >> it... nor could I make any changes to it. > > I don't think you want to edit pdf in Emacs: the file contents are not > human readable, and Emacs doesn't provide features to allow graphical > editing like those pdf editors (at least not built in). > > epub files can contain human readable parts like html, however. > > What I had written: > >>> I managed to copy an pdf-File into an epub Archive. Opened the >>> archive and opened the pdf using doc-view. I was not able to provoke an >>> error. Saving worked successfully however I tried. > > was only happening because I was trying around how to provoke the > reported error. > > Michael. Yep, of course that was the paragraph I was reading too. It is kinda weird that, with all the many things that emacs can do, it can't take the info from doc-view (which obviously understands all the pieces of a pdf-- down to its bits-- and how they all go together to make a document) and edit it... it's pretty much implausible to believe emacs *can't* do that. But then, I've always thought reality was completely implausible. :^/ ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-20 7:15 ` gebser @ 2023-03-21 0:31 ` Michael Heerdegen 2023-03-21 6:28 ` Yuri Khan 1 sibling, 0 replies; 37+ messages in thread From: Michael Heerdegen @ 2023-03-21 0:31 UTC (permalink / raw) To: help-gnu-emacs "gebser@mousecar.com" <gebser@mousecar.com> writes: > It is kinda weird that, with all the many things that emacs can do, it > can't take the info from doc-view (which obviously understands all the > pieces of a pdf-- down to its bits-- and how they all go together to > make a document) and edit it... AFAIU it understands nothing at all - it just calls an external converter to generate a set of png images it then displays. > it's pretty much implausible to believe emacs *can't* do that. I think if someone wants to work on something like that the result would be welcome. But this probably would have to be done from scratch, more or less, and not be the smallest effort. Michael. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-20 7:15 ` gebser 2023-03-21 0:31 ` Michael Heerdegen @ 2023-03-21 6:28 ` Yuri Khan 2023-03-21 6:38 ` Emanuel Berg 2023-03-21 11:51 ` Ulrich Deiters 1 sibling, 2 replies; 37+ messages in thread From: Yuri Khan @ 2023-03-21 6:28 UTC (permalink / raw) To: gebser; +Cc: help-gnu-emacs On Mon, 20 Mar 2023 at 14:16, gebser@mousecar.com <gebser@mousecar.com> wrote: > It is kinda weird that, with all the many things that emacs can do, it > can't take the info from doc-view (which obviously understands all the > pieces of a pdf-- down to its bits-- and how they all go together to > make a document) and edit it... it's pretty much implausible to believe > emacs *can't* do that. But then, I've always thought reality was > completely implausible. :^/ PDF is not really meant for editing. It’s not even a data format. Rather, it’s an executable program that has instructions like “select this font” and “display this word in the selected font at this position on the page” and “make a new page”. You don’t normally edit executable programs, you compile them from source. In the same vein, to get a modified PDF, you find the source document from which it was produced, modify that, and re-export. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-21 6:28 ` Yuri Khan @ 2023-03-21 6:38 ` Emanuel Berg 2023-03-22 16:32 ` Yuri Khan 2023-03-21 11:51 ` Ulrich Deiters 1 sibling, 1 reply; 37+ messages in thread From: Emanuel Berg @ 2023-03-21 6:38 UTC (permalink / raw) To: help-gnu-emacs Yuri Khan wrote: >> It is kinda weird that, with all the many things that emacs >> can do, it can't take the info from doc-view (which >> obviously understands all the pieces of a pdf-- down to its >> bits-- and how they all go together to make a document) and >> edit it... it's pretty much implausible to believe emacs >> *can't* do that. But then, I've always thought reality was >> completely implausible. :^/ > > PDF is not really meant for editing. It’s not even a data > format. Rather, it’s an executable program that has > instructions like “select this font” and “display this word > in the selected font at this position on the page” and “make > a new page”. > > You don’t normally edit executable programs, you compile > them from source. In the same vein, to get a modified PDF, > you find the source document from which it was produced, > modify that, and re-export. Still, they are editable at/from the PDF level as well, for example with xournal. This is used for signing documents, for example. It should not be confused or compared with editing the source, that's another thing. -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-21 6:38 ` Emanuel Berg @ 2023-03-22 16:32 ` Yuri Khan 2023-03-22 18:48 ` Bob Newell ` (3 more replies) 0 siblings, 4 replies; 37+ messages in thread From: Yuri Khan @ 2023-03-22 16:32 UTC (permalink / raw) To: help-gnu-emacs On Wed, 22 Mar 2023 at 22:46, Emanuel Berg <incal@dataswamp.org> wrote: > > You don’t normally edit executable programs, you compile > > them from source. In the same vein, to get a modified PDF, > > you find the source document from which it was produced, > > modify that, and re-export. > > Still, they are editable at/from the PDF level as well, for > example with xournal. That’s not really editing. You can scrawl over the existing text, you can carefully overpaint existing text with your own, but you cannot replace one word with a different word and hope the rest of the text is repositioned to accommodate the change. (To stretch the executable program analogy, you can append new instructions to an existing program. They will be executed and may, in limited cases, have your desired effect.) Xournal doesn’t even claim it supports editing — the menu item is called Annotate PDF. Commercial, proprietary Acrobat (not the Reader variety, the full suite) can, in limited ways, modify individual runs of text. But if you overflow a line, it won’t do anything to help you, you just get an overfull line. > This is used for signing documents, > for example. I’d be very wary of putting my handwritten signature as an annotation in a PDF document and giving that to another person. For all I know, it would enable them to extract the annotation containing my signature and apply it to a different document. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-22 16:32 ` Yuri Khan @ 2023-03-22 18:48 ` Bob Newell 2023-03-23 9:36 ` Jean Louis 2023-03-23 9:13 ` Jean Louis ` (2 subsequent siblings) 3 siblings, 1 reply; 37+ messages in thread From: Bob Newell @ 2023-03-22 18:48 UTC (permalink / raw) To: help-gnu-emacs I get sent PDFs all the time and it's often frustrating. However most of the time I need the text, not necessarily the formatting. For that, there are various PDF to text converters which work to some degree (not so great with multi-column text for the most part). I also found a PDF to spreadsheet converter which isn't especially great but better than nothing. Well, at least a little better. I realize this doesn't at all address the original question about editing PDFs in the true sense of editing. But in a lot of cases text extraction may be good enough, depending on your purpose. Copy/paste works in many cases as well. For instance I just got sent a PDF of a budget spreadsheet, and with not so much effort was able to make it into an org-mode table. All bets are off if the PDF is an /image/ of some text. Then you've got to get out your friendly OCR software. In such cases I write back to the sender and politely ask for something easier to use. -- Bob Newell Honolulu, Hawai`i - Via GNU/Linux/Emacs/Gnus/BBDB ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-22 18:48 ` Bob Newell @ 2023-03-23 9:36 ` Jean Louis 2023-03-23 23:00 ` Bob Newell 0 siblings, 1 reply; 37+ messages in thread From: Jean Louis @ 2023-03-23 9:36 UTC (permalink / raw) To: Bob Newell; +Cc: help-gnu-emacs * Bob Newell <bobnewell@bobnewell.net> [2023-03-22 21:49]: > I get sent PDFs all the time and it's often frustrating. > However most of the time I need the text, not necessarily the > formatting. For that, there are various PDF to text > converters which work to some degree (not so great with > multi-column text for the most part). Following references may be helpful to some people thinking to use multi-column text in Emacs: There is (info "(emacs) Two-Column") in Emacs manual. Example output produced by using RCD Paps packag for Emacs: https://gnu.support/files/emacs/packages/rcd-paps/2023/03/2023-03-23/2023-03-23-12:27:05.pdf GNU Emacs package: rcd-paps.el: https://gnu.support/gnu-emacs/packages/GNU-Emacs-package-rcd-paps-el-76862.html Any Emacs printing can produce such pages. > I realize this doesn't at all address the original question > about editing PDFs in the true sense of editing. But in a lot > of cases text extraction may be good enough, depending on your > purpose. LibreaOffice Draw -- open PDF file and you will see you can edit many things. Okular -- you can annotate and insert text Scribus and Xournal -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-23 9:36 ` Jean Louis @ 2023-03-23 23:00 ` Bob Newell 0 siblings, 0 replies; 37+ messages in thread From: Bob Newell @ 2023-03-23 23:00 UTC (permalink / raw) To: help-gnu-emacs > Following references may be helpful to some people thinking to use > multi-column text in Emacs: > > There is (info "(emacs) Two-Column") in Emacs manual. Right, although I was referring to a different problem, namely that if you do a PDF to text conversion of a PDF with multi-column text, you typically don't get great results. Or at least I don't. I do better with OCR software that allows me to select a column at a time. But then we're getting into multiple manual steps, introducing OCR error, and in the end we are working with the text, not directly editing the PDF. (However extracting text is often enough for me.) > Example output produced by using RCD Paps packag for Emacs: > https://gnu.support/files/emacs/packages/rcd-paps/2023/03/2023-03-23/2023-03-23-12:27:05.pdf I didn't know about the RCD package. Looks useful and thank you for the pointer. > LibreaOffice Draw -- open PDF file and you will see you can edit many > things. > > Okular -- you can annotate and insert text > > Scribus and Xournal Yes, I use Xournal very often and sometimes Gimp in this manner for signing or annotating business documents received as PDFs. It is still not the same as directly editing. However if the reproduction is faithfully enough it is indeed possible to make significant changes and export back out as PDF. -- Bob Newell Honolulu, Hawai`i Via Linux/Emacs/Gnus/BBDB. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-22 16:32 ` Yuri Khan 2023-03-22 18:48 ` Bob Newell @ 2023-03-23 9:13 ` Jean Louis 2023-03-23 10:37 ` Michael Heerdegen 2023-03-23 20:07 ` Emanuel Berg 3 siblings, 0 replies; 37+ messages in thread From: Jean Louis @ 2023-03-23 9:13 UTC (permalink / raw) To: Yuri Khan; +Cc: help-gnu-emacs * Yuri Khan <yuri.v.khan@gmail.com> [2023-03-22 19:34]: > > This is used for signing documents, > > for example. > > I’d be very wary of putting my handwritten signature as an > annotation in a PDF document and giving that to another person. For > all I know, it would enable them to extract the annotation > containing my signature and apply it to a different document. It is false sense of safety. Any of your signature anywhere ever given to anybody, from paper or anywhere, could be taken, then made picture of it and easily placed in any kind of documents. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-22 16:32 ` Yuri Khan 2023-03-22 18:48 ` Bob Newell 2023-03-23 9:13 ` Jean Louis @ 2023-03-23 10:37 ` Michael Heerdegen 2023-03-23 20:13 ` Emanuel Berg 2023-03-23 20:07 ` Emanuel Berg 3 siblings, 1 reply; 37+ messages in thread From: Michael Heerdegen @ 2023-03-23 10:37 UTC (permalink / raw) To: help-gnu-emacs Yuri Khan <yuri.v.khan@gmail.com> writes: > I’d be very wary of putting my handwritten signature as an annotation > in a PDF document and giving that to another person. For all I know, > it would enable them to extract the annotation containing my signature > and apply it to a different document. Anybody can do that with a scan of my signature anyway (that's how I got my version). I do have to sign stuff. I can't prevent criminals from doing criminal things with my signature in this case I think. I don't even expect that such pdfs are valid documents btw (as a lot of such things are actually, like photos of identity cards). Michael. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-23 10:37 ` Michael Heerdegen @ 2023-03-23 20:13 ` Emanuel Berg 0 siblings, 0 replies; 37+ messages in thread From: Emanuel Berg @ 2023-03-23 20:13 UTC (permalink / raw) To: help-gnu-emacs Michael Heerdegen wrote: >> I’d be very wary of putting my handwritten signature as an >> annotation in a PDF document and giving that to another >> person. For all I know, it would enable them to extract the >> annotation containing my signature and apply it to >> a different document. > > Anybody can do that with a scan of my signature anyway > (that's how I got my version). I do have to sign stuff. > I can't prevent criminals from doing criminal things with my > signature in this case I think. Indeed, as the major of Limbo City, I do that all the time! But it's my impression these documents don't contain that much, most of the time, so maybe there is no harm to it. -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-22 16:32 ` Yuri Khan ` (2 preceding siblings ...) 2023-03-23 10:37 ` Michael Heerdegen @ 2023-03-23 20:07 ` Emanuel Berg 3 siblings, 0 replies; 37+ messages in thread From: Emanuel Berg @ 2023-03-23 20:07 UTC (permalink / raw) To: help-gnu-emacs Yuri Khan wrote: >>> You don’t normally edit executable programs, you compile >>> them from source. In the same vein, to get a modified PDF, >>> you find the source document from which it was produced, >>> modify that, and re-export. >> >> Still, they are editable at/from the PDF level as well, for >> example with xournal. > > That’s not really editing. You can scrawl over the existing > text, you can carefully overpaint existing text with your > own, but you cannot replace one word with a different word > and hope the rest of the text is repositioned to accommodate > the change. Well, obviously it's not the same as editing the LaTeX source and compiling the original document. Actually not only is it "not the same", it's completely different. -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-21 6:28 ` Yuri Khan 2023-03-21 6:38 ` Emanuel Berg @ 2023-03-21 11:51 ` Ulrich Deiters 2023-03-21 21:57 ` gebser 1 sibling, 1 reply; 37+ messages in thread From: Ulrich Deiters @ 2023-03-21 11:51 UTC (permalink / raw) To: help-gnu-emacs You can try to convert PDF to PostScript, e.g., with pdf2ps, pdftops, … PostScript is human-readable and can be edited with emacs. Depending how the PDF code was created, however, the PostScript code may be difficult to interpret, or even contain blocks of binary code. Unless you recognize some strings like … (some text) show … which can eventually be modified, it is risky to make changes. As Yuri stated, PDF (or PostScript) code is meant to be executed. Changes might result in a buggy code, and then the interpreter or the printer will balk. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-21 11:51 ` Ulrich Deiters @ 2023-03-21 21:57 ` gebser 2023-03-21 22:55 ` Ulrich Deiters 2023-03-22 7:03 ` Jean Louis 0 siblings, 2 replies; 37+ messages in thread From: gebser @ 2023-03-21 21:57 UTC (permalink / raw) To: help-gnu-emacs On 3/21/23 7:51 AM, Ulrich Deiters wrote: > You can try to convert PDF to PostScript, e.g., with pdf2ps, pdftops, … > PostScript is human-readable and can be edited with emacs. > > Depending how the PDF code was created, however, the PostScript code > may be difficult to interpret, or even contain blocks of binary code. > Unless you recognize some strings like > > … (some text) show … > > which can eventually be modified, it is risky to make changes. As Yuri > stated, PDF (or PostScript) code is meant to be executed. Changes might > result in a buggy code, and then the interpreter or the printer will balk. > > Ugghhh. You and Yuri have made me dislike PDFs even more than before. Yet still those executable(s) could be reverse-engineered. Better than that, what FOSS app(s) would be happy replacement for the Acrobat-Industrial Complex? ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-21 21:57 ` gebser @ 2023-03-21 22:55 ` Ulrich Deiters 2023-03-22 1:56 ` Michael Heerdegen ` (2 more replies) 2023-03-22 7:03 ` Jean Louis 1 sibling, 3 replies; 37+ messages in thread From: Ulrich Deiters @ 2023-03-21 22:55 UTC (permalink / raw) To: help-gnu-emacs Am 21.03.23 um 22:57 schrieb gebser@mousecar.com: > Better than that, what FOSS app(s) would be happy replacement for the > Acrobat-Industrial Complex? This depends on what you want. Printing a document takes (at least) three stages: (1) One composes the text using a language that contains formatting commands. The best open-source choice is LaTeX. LaTeX code is human- readable and can be edited with emacs; in fact, emacs has a LaTeX mode. There are also free programs that assist writing LaTeX code, or which let one compose XML code, which is then translated into LaTeX. (2) One processes the LaTeX code; the results are DVI, PostScript, or PDF files. Such files basically consist of instructions of the type "choose font F, go to location (X, Y), and print character C". Therefore these files are long and, if converted to a human-readable format, very boring. You do not want to edit these. (3) The intermediate code is processed to produce a bitmap, which is then transferred to the paper. So you see, the stage at which editing makes sense is Stage (1). Exceptions are graphics designers and artists, who work with PostScript or similar languages directly in order to achieve special effects. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-21 22:55 ` Ulrich Deiters @ 2023-03-22 1:56 ` Michael Heerdegen 2023-03-22 8:26 ` FOSS replacement for PDF [Re: editing a PDF] gebser 2023-03-28 11:28 ` editing a PDF [Re: emacs 30.5.0 editing epub] Michael Heerdegen 2 siblings, 0 replies; 37+ messages in thread From: Michael Heerdegen @ 2023-03-22 1:56 UTC (permalink / raw) To: help-gnu-emacs Ulrich Deiters <ulrich.deiters@uni-koeln.de> writes: > So you see, the stage at which editing makes sense is Stage (1). Apart from that, the few useful things that you can do with existing pdf's is stuff like reordering pages, changing page sizes or adding page numbers or merge several files (e.g. pdfsam, pdfchain, page-crunch). And there is for example Xournal that allows some very simple and limited editing of pdf files, like adding annotations or inserting your signature as an image. Michael. ^ permalink raw reply [flat|nested] 37+ messages in thread
* FOSS replacement for PDF [Re: editing a PDF] 2023-03-21 22:55 ` Ulrich Deiters 2023-03-22 1:56 ` Michael Heerdegen @ 2023-03-22 8:26 ` gebser 2023-03-22 9:18 ` Yuri Khan 2023-03-28 11:28 ` editing a PDF [Re: emacs 30.5.0 editing epub] Michael Heerdegen 2 siblings, 1 reply; 37+ messages in thread From: gebser @ 2023-03-22 8:26 UTC (permalink / raw) To: help-gnu-emacs On 3/21/23 6:55 PM, Ulrich Deiters wrote: > Am 21.03.23 um 22:57 schrieb gebser@mousecar.com: >> Better than that, what FOSS app(s) would be happy replacement for the >> Acrobat-Industrial Complex? > > This depends on what you want. Printing a document takes > (at least) three stages: > > (1) One composes the text using a language that contains formatting > commands. The best open-source choice is LaTeX. LaTeX code is human- > readable and can be edited with emacs; in fact, emacs has a LaTeX > mode. There are also free programs that assist writing LaTeX code, > or which let one compose XML code, which is then translated into LaTeX. > > (2) One processes the LaTeX code; the results are DVI, PostScript, > or PDF files. Such files basically consist of instructions of the > type "choose font F, go to location (X, Y), and print character C". > Therefore these files are long and, if converted to a human-readable > format, very boring. You do not want to edit these. > > (3) The intermediate code is processed to produce a bitmap, which is > then transferred to the paper. > > So you see, the stage at which editing makes sense is Stage (1). > > Exceptions are graphics designers and artists, who work with PostScript > or similar languages directly in order to achieve special effects. > > Thanks for the very thorough reply. This question really wasn't for me, but rather for people I know and meet who write pdf docs, who take pdf as a "standard". I'm afraid that latex would be far too technological for them... and for most people. Even something like Libreoffice's Write would have a more familiar UI-- for that reason alone they'd be more like likely to try it. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: FOSS replacement for PDF [Re: editing a PDF] 2023-03-22 8:26 ` FOSS replacement for PDF [Re: editing a PDF] gebser @ 2023-03-22 9:18 ` Yuri Khan 2023-03-23 9:21 ` Jean Louis 0 siblings, 1 reply; 37+ messages in thread From: Yuri Khan @ 2023-03-22 9:18 UTC (permalink / raw) To: gebser; +Cc: help-gnu-emacs On Wed, 22 Mar 2023 at 15:26, gebser@mousecar.com <gebser@mousecar.com> wrote: > Even something like Libreoffice's > Write would have a more familiar UI-- for that reason alone they'd be > more like likely to try it. LibreOffice is okay. And it can export to PDF in case that’s needed as the final format. Of course, exporting to PDF is a one-way street, therefore, all actual editing needs to be done on the source LibreOffice document. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: FOSS replacement for PDF [Re: editing a PDF] 2023-03-22 9:18 ` Yuri Khan @ 2023-03-23 9:21 ` Jean Louis 2023-03-23 9:49 ` Yuri Khan 0 siblings, 1 reply; 37+ messages in thread From: Jean Louis @ 2023-03-23 9:21 UTC (permalink / raw) To: Yuri Khan; +Cc: gebser, help-gnu-emacs * Yuri Khan <yuri.v.khan@gmail.com> [2023-03-22 12:20]: > Of course, exporting to PDF is a one-way street, therefore, all actual > editing needs to be done on the source LibreOffice document. Okay, though, look at these nice example how it can be converted to HTML: pdf2htmlEX by coolwanglu: https://pdf2htmlex.github.io/pdf2htmlEX/ pdf2htmlex.github.io/pdf2htmlEX/demo/geneve.html: https://pdf2htmlex.github.io/pdf2htmlEX/demo/geneve.html pdf2htmlex.github.io/pdf2htmlEX/demo/cheat.html: https://pdf2htmlex.github.io/pdf2htmlEX/demo/cheat.html pdf2htmlex.github.io/pdf2htmlEX/demo/issue65_en.html: https://pdf2htmlex.github.io/pdf2htmlEX/demo/issue65_en.html pdf2htmlex.github.io/pdf2htmlEX/demo/demo.html: https://pdf2htmlex.github.io/pdf2htmlEX/demo/demo.html So far it is possible to convert PDF to plain text provided there was some text inside, and to HTML. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: FOSS replacement for PDF [Re: editing a PDF] 2023-03-23 9:21 ` Jean Louis @ 2023-03-23 9:49 ` Yuri Khan 2023-03-23 10:53 ` Gregory Heytings 0 siblings, 1 reply; 37+ messages in thread From: Yuri Khan @ 2023-03-23 9:49 UTC (permalink / raw) To: Yuri Khan, gebser, help-gnu-emacs On Thu, 23 Mar 2023 at 16:24, Jean Louis <bugs@gnu.support> wrote: > Okay, though, look at these nice example how it can be converted to > HTML: > > pdf2htmlEX by coolwanglu: > https://pdf2htmlex.github.io/pdf2htmlEX/ Yeah that’s somewhat impressive. You will notice there are stray spaces in some words, possibly due to kerning. > pdf2htmlex.github.io/pdf2htmlEX/demo/geneve.html: > https://pdf2htmlex.github.io/pdf2htmlEX/demo/geneve.html This one is literally unreadable. (If you allow web fonts, it renders in a hard-to-read font, if you don’t, you get two pages of tofu; copying to clipboard does not work in any case.) ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: FOSS replacement for PDF [Re: editing a PDF] 2023-03-23 9:49 ` Yuri Khan @ 2023-03-23 10:53 ` Gregory Heytings 0 siblings, 0 replies; 37+ messages in thread From: Gregory Heytings @ 2023-03-23 10:53 UTC (permalink / raw) To: Yuri Khan; +Cc: gebser, help-gnu-emacs >> Okay, though, look at these nice example how it can be converted to >> HTML: >> >> pdf2htmlEX by coolwanglu: https://pdf2htmlex.github.io/pdf2htmlEX/ > > Yeah that’s somewhat impressive. > It's impressive, but not for what the OP wanted to do, namely edit the text. The resulting HTML page has the same structure as the PDF: it's a sequence of "put this character in that font at that position" instructions. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-21 22:55 ` Ulrich Deiters 2023-03-22 1:56 ` Michael Heerdegen 2023-03-22 8:26 ` FOSS replacement for PDF [Re: editing a PDF] gebser @ 2023-03-28 11:28 ` Michael Heerdegen 2 siblings, 0 replies; 37+ messages in thread From: Michael Heerdegen @ 2023-03-28 11:28 UTC (permalink / raw) To: Ulrich Deiters; +Cc: help-gnu-emacs Ulrich Deiters <ulrich.deiters@uni-koeln.de> writes: > (1) One composes the text using a language that contains formatting > commands. The best open-source choice is LaTeX. LaTeX code is human- > readable and can be edited with emacs; in fact, emacs has a LaTeX > mode. There are also free programs that assist writing LaTeX code, > or which let one compose XML code, which is then translated into LaTeX. Let me add: also org-mode can export to pdf. If it should be LaTex and you don't want to write code yourself, even not in Emacs with the really good AUCtex package, there are things like lyx: https://www.lyx.org/ - hybrid latex "editors" that mostly feel like using text processing in LibreOffice (mostly WYSIWYG). It's a good compromise. Org is even simpler. It's not LaTex but still allows to use LaTeX snippets (e.g. for mathematical stuff) that will be integrated in the exported document (be it ps, pdf or html). Michael. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-21 21:57 ` gebser 2023-03-21 22:55 ` Ulrich Deiters @ 2023-03-22 7:03 ` Jean Louis 2023-03-22 15:20 ` gebser 1 sibling, 1 reply; 37+ messages in thread From: Jean Louis @ 2023-03-22 7:03 UTC (permalink / raw) To: gebser@mousecar.com; +Cc: help-gnu-emacs * gebser@mousecar.com <gebser@mousecar.com> [2023-03-22 00:58]: > Ugghhh. You and Yuri have made me dislike PDFs even more than before. Yet > still those executable(s) could be reverse-engineered. Better than that, > what FOSS app(s) would be happy replacement for the Acrobat-Industrial > Complex? As I do not use proprietary applications, I cannot know what does that propriety non-free software Acrobat Industrial Complex does. I may recommend some software here. Name: flpsed 0.7.3-1 Description : A WYSIWYG PostScript annotator URL : http://flpsed.org/flpsed.html This software has very simple feature to edit text in PDF documents or save PS pdocuments to PDF. In general when I want to change PDF, I sometimes convert it to picture and change the picture by using ImageMagick tools. And often I may import PDF into Gimp software and then edit it as pictures. That is often for reasons to insert signature in contracts. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: editing a PDF [Re: emacs 30.5.0 editing epub] 2023-03-22 7:03 ` Jean Louis @ 2023-03-22 15:20 ` gebser 0 siblings, 0 replies; 37+ messages in thread From: gebser @ 2023-03-22 15:20 UTC (permalink / raw) To: help-gnu-emacs On 3/22/23 3:03 AM, Jean Louis wrote: > Name: flpsed 0.7.3-1 > Description : A WYSIWYG PostScript annotator > URL :http://flpsed.org/flpsed.html Unfortunately it isn't found by gnome's "Activities" search. People would need to write a menu on their hand and not take baths. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: emacs 30.5.0 editing epub 2023-03-15 18:35 emacs 30.5.0 editing epub H.-J. Heitländer 2023-03-16 5:05 ` Michael Heerdegen @ 2023-03-16 9:22 ` Stephen Berman 2023-03-16 13:16 ` H.-J. Heitländer 1 sibling, 1 reply; 37+ messages in thread From: Stephen Berman @ 2023-03-16 9:22 UTC (permalink / raw) To: H.-J. Heitländer; +Cc: gnu emacs On Wed, 15 Mar 2023 18:35:55 +0000 H.-J. Heitländer <Heiner.Heitlaender@posteo.de> wrote: > Hi there, > > trying to get my feet wet with emacs and lisp. ... well it seems I am > drowning... > > The problem: > > I am editing epub archives and any saves that I am doing result in > > <snip> > > ***backtrace*** [...] > For the moment I can live with that as in reality the epub is being saved. > > My problem is that from that moment on the display of the epub subfile > (<name>.html) loses the utf-8 display. (oh, and every other file is being > displayed in the same - wrong - way.) > > The content is shown as (example) > > <snip> > > \342\200\234Nicely done. Now let\342\200\231s get that equipment on > board.\342\200\234 </p> > > </snip> > > It should have been shown as > > <snip> > > "Nicely done. Now let's get that equipment on board." </p> > > </snip> > > I searched the internet without any result. Don't know which part of > documentation to read. > > Question: How do I switch the display back to show the contents in the > expected way??? It looks like the buffer is being displayed in the raw-text coding system (is the first character in the mode line "t"?). \342\200\234 is the raw-byte sequence of the unicode character LEFT DOUBLE QUOTATION MARK (#x201c) and \342\200\231 of RIGHT SINGLE QUOTATION MARK (#x2019). Does typing `C-x RET r' and at the prompt entering `utf-8' and at the next prompt `yes' fix the display? Steve Berman ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: emacs 30.5.0 editing epub 2023-03-16 9:22 ` emacs 30.5.0 editing epub Stephen Berman @ 2023-03-16 13:16 ` H.-J. Heitländer 2023-03-16 15:23 ` Yuri Khan 0 siblings, 1 reply; 37+ messages in thread From: H.-J. Heitländer @ 2023-03-16 13:16 UTC (permalink / raw) To: Stephen Berman; +Cc: gnu emacs Hi Stephen, mode line displays <snip> =:**- </snip> When entering the command C-x RET r ... utf-8 the "answer" is "wrong type argument: strongp, nil". Testcase 2) kill buffer up to the top epub reopen epub open epub subfile (...html) C-x RET r ... utf-8 in minibufer: Revert buffer from file xxx.html? (y or n) Answer: y Minibuffer: Cannot revert noexistent file xxx.html Other directory buffers display with "coding system (default nil)" as soon as I perform a refresh of the directory display with "g". To cure this phenomen I have to kill / restart emacs. So no easy solution / workaround at the moment. TX Heiner Am 16.03.23 um 10:22 schrieb Stephen Berman: > On Wed, 15 Mar 2023 18:35:55 +0000 H.-J. Heitländer<Heiner.Heitlaender@posteo.de> wrote: > >> Hi there, >> >> trying to get my feet wet with emacs and lisp. ... well it seems I am >> drowning... >> >> The problem: >> >> I am editing epub archives and any saves that I am doing result in >> >> <snip> >> >> ***backtrace*** > [...] >> For the moment I can live with that as in reality the epub is being saved. >> >> My problem is that from that moment on the display of the epub subfile >> (<name>.html) loses the utf-8 display. (oh, and every other file is being >> displayed in the same - wrong - way.) >> >> The content is shown as (example) >> >> <snip> >> >> \342\200\234Nicely done. Now let\342\200\231s get that equipment on >> board.\342\200\234 </p> >> >> </snip> >> >> It should have been shown as >> >> <snip> >> >> "Nicely done. Now let's get that equipment on board." </p> >> >> </snip> >> >> I searched the internet without any result. Don't know which part of >> documentation to read. >> >> Question: How do I switch the display back to show the contents in the >> expected way??? > It looks like the buffer is being displayed in the raw-text coding > system (is the first character in the mode line "t"?). \342\200\234 is > the raw-byte sequence of the unicode character LEFT DOUBLE QUOTATION > MARK (#x201c) and \342\200\231 of RIGHT SINGLE QUOTATION MARK (#x2019). > Does typing `C-x RET r' and at the prompt entering `utf-8' and at the > next prompt `yes' fix the display? > > Steve Berman ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: emacs 30.5.0 editing epub 2023-03-16 13:16 ` H.-J. Heitländer @ 2023-03-16 15:23 ` Yuri Khan 2023-03-16 16:54 ` H.-J. Heitländer 0 siblings, 1 reply; 37+ messages in thread From: Yuri Khan @ 2023-03-16 15:23 UTC (permalink / raw) To: H.-J. Heitländer; +Cc: Stephen Berman, gnu emacs On Thu, 16 Mar 2023 at 20:17, H.-J. Heitländer <Heiner.Heitlaender@posteo.de> wrote: > kill buffer up to the top epub > > reopen epub > > open epub subfile (...html) > > C-x RET r ... utf-8 > > in minibufer: Revert buffer from file xxx.html? (y or n) > > Answer: y > > Minibuffer: Cannot revert noexistent file xxx.html You keep mentioning “editing epub”. Are you even sure it’s supposed to work? An EPUB file is a zip archive, typically containing XHTML pages and some metadata. Emacs covers some basic scenarios where you can browse the archive, visit files inside, even edit and save them (and they get re-compressed and updated in the archive). Reverting, on the other hand, does not work, probably because of the way archive-mode is implemented. So when it picks the wrong encoding, you cannot fix it by reverting. You could probably achieve better results if you first extract the contents of the EPUB archive into a real directory on your file system, then edit files there. If necessary, re-pack the modified files. I see ‘archive--extract-file’ initially sets the coding system to ‘no-conversion’, possibly because it needs that for decompression. It is supposed to re-decide on a coding system later in ‘archive-set-buffer-as-visiting-file’, but for some reason it keeps ‘no-conversion’ in your case. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: emacs 30.5.0 editing epub 2023-03-16 15:23 ` Yuri Khan @ 2023-03-16 16:54 ` H.-J. Heitländer 2023-03-16 18:58 ` Stefan Monnier via Users list for the GNU Emacs text editor 0 siblings, 1 reply; 37+ messages in thread From: H.-J. Heitländer @ 2023-03-16 16:54 UTC (permalink / raw) To: Yuri Khan; +Cc: gnu emacs Hi Yuri, yes I keep mentioning "editing EPUB" because a) that's my primary use case at the moment (in combination with "calibre") and b) it worked some time ago. (emacs 29.5 and earlier as far as I remember) Even in this buggy scenario it is much more comfortable for me to handle EPUBs this way than doing it by extracting the zip file and rezipping it. Especially as I lack an "idiot-safe" workflow for unzipping / rezipping. So I shall live with this situation because I can't correct it. | I see ‘archive--extract-file’ initially sets the coding system to | ‘no-conversion’, possibly because it needs that for decompression. It | is supposed to re-decide on a coding system later in | ‘archive-set-buffer-as-visiting-file’, but for some reason it keeps | ‘no-conversion’ in your case. There seems to exist a bug in the migration path somewhere from version 29 to 30. Where do I address the bug report; as I am definetely too dumb for debugging it myself? Cheers and thanks for your patience Heiner Am 16.03.23 um 16:23 schrieb Yuri Khan: > On Thu, 16 Mar 2023 at 20:17, H.-J. Heitländer > <Heiner.Heitlaender@posteo.de> wrote: > >> kill buffer up to the top epub >> >> reopen epub >> >> open epub subfile (...html) >> >> C-x RET r ... utf-8 >> >> in minibufer: Revert buffer from file xxx.html? (y or n) >> >> Answer: y >> >> Minibuffer: Cannot revert noexistent file xxx.html > You keep mentioning “editing epub”. Are you even sure it’s supposed to work? > > An EPUB file is a zip archive, typically containing XHTML pages and > some metadata. Emacs covers some basic scenarios where you can browse > the archive, visit files inside, even edit and save them (and they get > re-compressed and updated in the archive). > > Reverting, on the other hand, does not work, probably because of the > way archive-mode is implemented. So when it picks the wrong encoding, > you cannot fix it by reverting. > > You could probably achieve better results if you first extract the > contents of the EPUB archive into a real directory on your file > system, then edit files there. If necessary, re-pack the modified > files. > > I see ‘archive--extract-file’ initially sets the coding system to > ‘no-conversion’, possibly because it needs that for decompression. It > is supposed to re-decide on a coding system later in > ‘archive-set-buffer-as-visiting-file’, but for some reason it keeps > ‘no-conversion’ in your case. > ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: emacs 30.5.0 editing epub 2023-03-16 16:54 ` H.-J. Heitländer @ 2023-03-16 18:58 ` Stefan Monnier via Users list for the GNU Emacs text editor 2023-03-20 21:50 ` emacs 30.5.0 editing epub - finishing remark H.-J. Heitländer 0 siblings, 1 reply; 37+ messages in thread From: Stefan Monnier via Users list for the GNU Emacs text editor @ 2023-03-16 18:58 UTC (permalink / raw) To: help-gnu-emacs H.-J. Heitländer [2023-03-16 16:54:03] wrote: > Where do I address the bug report; Help => How to Report a Bug Stefan ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: emacs 30.5.0 editing epub - finishing remark 2023-03-16 18:58 ` Stefan Monnier via Users list for the GNU Emacs text editor @ 2023-03-20 21:50 ` H.-J. Heitländer 0 siblings, 0 replies; 37+ messages in thread From: H.-J. Heitländer @ 2023-03-20 21:50 UTC (permalink / raw) To: help-gnu-emacs 1) debug report has been sent 2) Michael has developed a patch which was near to perfection. With minor change it fitted (doc-view version with different LOC) 3) Problem fixed Thanks to everyone Heiner Am 16.03.23 um 19:58 schrieb Stefan Monnier via Users list for the GNU Emacs text editor: > H.-J. Heitländer [2023-03-16 16:54:03] wrote: >> Where do I address the bug report; > Help => How to Report a Bug > > > Stefan > > ^ permalink raw reply [flat|nested] 37+ messages in thread
end of thread, other threads:[~2023-03-28 11:28 UTC | newest] Thread overview: 37+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-03-15 18:35 emacs 30.5.0 editing epub H.-J. Heitländer 2023-03-16 5:05 ` Michael Heerdegen 2023-03-16 6:57 ` H.-J. Heitländer 2023-03-17 0:44 ` Michael Heerdegen 2023-03-17 1:13 ` Michael Heerdegen 2023-03-19 21:23 ` editing a PDF [Re: emacs 30.5.0 editing epub] gebser 2023-03-19 23:59 ` Michael Heerdegen 2023-03-20 7:15 ` gebser 2023-03-21 0:31 ` Michael Heerdegen 2023-03-21 6:28 ` Yuri Khan 2023-03-21 6:38 ` Emanuel Berg 2023-03-22 16:32 ` Yuri Khan 2023-03-22 18:48 ` Bob Newell 2023-03-23 9:36 ` Jean Louis 2023-03-23 23:00 ` Bob Newell 2023-03-23 9:13 ` Jean Louis 2023-03-23 10:37 ` Michael Heerdegen 2023-03-23 20:13 ` Emanuel Berg 2023-03-23 20:07 ` Emanuel Berg 2023-03-21 11:51 ` Ulrich Deiters 2023-03-21 21:57 ` gebser 2023-03-21 22:55 ` Ulrich Deiters 2023-03-22 1:56 ` Michael Heerdegen 2023-03-22 8:26 ` FOSS replacement for PDF [Re: editing a PDF] gebser 2023-03-22 9:18 ` Yuri Khan 2023-03-23 9:21 ` Jean Louis 2023-03-23 9:49 ` Yuri Khan 2023-03-23 10:53 ` Gregory Heytings 2023-03-28 11:28 ` editing a PDF [Re: emacs 30.5.0 editing epub] Michael Heerdegen 2023-03-22 7:03 ` Jean Louis 2023-03-22 15:20 ` gebser 2023-03-16 9:22 ` emacs 30.5.0 editing epub Stephen Berman 2023-03-16 13:16 ` H.-J. Heitländer 2023-03-16 15:23 ` Yuri Khan 2023-03-16 16:54 ` H.-J. Heitländer 2023-03-16 18:58 ` Stefan Monnier via Users list for the GNU Emacs text editor 2023-03-20 21:50 ` emacs 30.5.0 editing epub - finishing remark H.-J. Heitländer
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).