mirror of
https://codeberg.org/privacy1st/md-to-pdf.git
synced 2024-11-22 14:09:32 +01:00
use wkhtmltopdf instead of chromium
This commit is contained in:
parent
cd5fb9ebdb
commit
1e965f99a5
@ -1,5 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function convert0(){
|
||||
file="${1}"
|
||||
|
||||
html="${file}".html;
|
||||
pdf="${file}".pdf;
|
||||
|
||||
# depends=(chromium cmark-gfm) # 'chromium' is e.g. provided by the package 'ungoogled-chromium'
|
||||
|
||||
# Convert
|
||||
cmark-gfm "${file}" --to html --unsafe > "${html}"
|
||||
chromium --headless --disable-gpu --print-to-pdf="${pdf}" file://"${html}"
|
||||
|
||||
# Cleanup
|
||||
rm "${html}"
|
||||
}
|
||||
|
||||
function convert1(){
|
||||
md="${1}"
|
||||
out="${md}".pdf
|
||||
|
32
md-to-pdf
32
md-to-pdf
@ -1,8 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
SCRIPT_TITLE=md-to-pdf
|
||||
depends=(chromium cmark-gfm) # 'chromium' is e.g. provided by the package 'ungoogled-chromium'
|
||||
optdepends=(notify-send)
|
||||
depends=(wkhtmltopdf cmark-gfm) # 'wkhtmltopdf' with qt-error is e.g. provided by the package 'wkhtmltopdf-static'
|
||||
optdepends=(notify-send de-p1st-image-width-limit)
|
||||
|
||||
# Uncomment for debugging:
|
||||
exec 1> "${HOME}"/"${SCRIPT_TITLE}".log 2>&1
|
||||
@ -44,6 +44,19 @@ function check_depends() {
|
||||
done
|
||||
}
|
||||
|
||||
function modify_html() {
|
||||
# Images should be no wider than 700px, otherwise they may be only partially visible.
|
||||
# This method adds a style attribute to HTML image tags to limit their size.
|
||||
#
|
||||
# in: path to HTML file
|
||||
# out: None. The given HTML file will be modified.
|
||||
file="${1}"
|
||||
|
||||
if command_exists 'de-p1st-image-width-limit'; then
|
||||
de-p1st-image-width-limit "${file}" || notify "${SCRIPT_TITLE}" "Could not modify ${html}!" --icon=dialog-information;
|
||||
fi
|
||||
}
|
||||
|
||||
check_depends
|
||||
|
||||
# read newline-delimited absolute paths of selected files (on local filesystem)
|
||||
@ -56,11 +69,26 @@ echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read file; do
|
||||
|
||||
html="${file}".html;
|
||||
pdf="${file}".pdf;
|
||||
parent_dir="$(dirname "${file}")"
|
||||
|
||||
# Convert
|
||||
cmark-gfm "${file}" --to html --unsafe > "${html}" || notify "${SCRIPT_TITLE}" "Conversion of ${file} to html failed!" --icon=dialog-information;
|
||||
chromium --headless --disable-gpu --print-to-pdf="${pdf}" file://"${html}" || notify "${SCRIPT_TITLE}" "Conversion of ${html} to pdf failed!" --icon=dialog-information;
|
||||
|
||||
modify_html "${html}"
|
||||
|
||||
# https://wkhtmltopdf.org/usage/wkhtmltopdf.txt
|
||||
wkhtmltopdf \
|
||||
--page-size A4 \
|
||||
--allow "${parent_dir}" `# We assume that all referenced images are located in the same directory` \
|
||||
`# or in a subdirectory of the html file` \
|
||||
--encoding UTF-8 \
|
||||
--outline \
|
||||
--orientation Portrait \
|
||||
--footer-center '[Page]' `# Adds page numbers` \
|
||||
'--disable-smart-shrinking' \
|
||||
"${html}" "${pdf}" || notify "${SCRIPT_TITLE}" "Conversion of ${html} to pdf failed!" --icon=dialog-information;
|
||||
|
||||
# Cleanup
|
||||
rm "${html}" || notify "${SCRIPT_TITLE}" "Could not delete intermediate file ${html}!" --icon=dialog-information;
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user