我正在尝试使用 pandoc 将通过邮件收到的 .docx 转换为正确的 pdf(我使用的是 GNU/Linux)。
我有一个关于字符编码的错误:
$ pandoc file.docx -o file.pdf
pandoc: Cannot decode byte '\x87': Data.Text.Encoding.decodeUtf8: Invalid UTF-8 stream
Run Code Online (Sandbox Code Playgroud)
我试图识别编码:
$ file -i file .docx
file.docx: application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=binary
Run Code Online (Sandbox Code Playgroud)
我有点惊讶charset=binary
(我期待charset=iso8859-15
)。但是,我无论如何都尝试将 .docx 转换为 utf8,但它不起作用:
$ iconv -t utf-8 file.docx
P! $iconv: séquence d'échappement non permise à la position 16
Run Code Online (Sandbox Code Playgroud)
我对pandoc 文档中的命令行有同样的错误:
iconv -t utf-8 file.docx | pandoc | iconv -f utf-8
Run Code Online (Sandbox Code Playgroud)
如何使用 pandoc 将此 .docx 转换为 pdf?
我正在将文档从 Pandoc markdown 转换为 .pdf。我像这样运行转换,一切正常:
pandoc test.MD -f markdown -o test.pdf
Run Code Online (Sandbox Code Playgroud)
但是,我希望 pandoc 以横向而不是纵向格式输出我的 PDF 页面。有没有办法做到这一点?
在文档中,我找不到正确的命令(在LaTex 的变量下检查)。添加\setuppapersize[letter,landscape]
那里提到的 command 似乎只有在您使用我没有安装/未安装经验的上下文引擎时才有效。我还想指出,我正在使用该\newpage
命令将文件分成几页,以防万一。
我将不胜感激任何指点!
我即将通过电子邮件与我的一个朋友一起参与一些散文写作。作为一个普通人,他当然会使用 MS Word 文档格式;作为一个大书呆子,我更喜欢在电脑上写作时使用 Markdown。
我需要的是这个关于将从网页复制的富文本转换为 markdown 的问题完全相反。我天真的最坏情况工作流程是:
pandoc -S file.mkd -o temp.html
temp.html
在网络浏览器中打开我确信这可以优化。
(在这种情况下,Google Docs 不是一个选项)。
尽管我已经回答了主要问题,但我仍然觉得这可以进一步优化。如果有任何方法可以连接 .doc 文件(我将接收和 pandoc 可以写入的文件),也许使用 libreoffice 命令行界面,那么我想有可能构建一个过于复杂的单行和完全避免离开航站楼。如果有人找到一种方法来做到这一点,我会很乐意接受我自己的答案。
在命令行中将 markdown 转换为 pdf 最简单的工具是什么?
我找到了人们建议使用的howtos pandoc
,但所需的包需要千兆字节的依赖项:
apt-get install pandoc texlive-latex-base texlive-fonts-recommended texlive-extra-utils texlive-latex-extra
Run Code Online (Sandbox Code Playgroud)
是否有一些最小的工具可以在命令行中将简单的 markdown 转换为 pdf,并且不需要大量的依赖项?
我使用的是 Debian 10。
有人对如何在 Arch 上安装 pandoc 有任何建议吗?我正在尝试从这里安装 pandoc-static:https://aur.archlinux.org/packages/pandoc-static/,尽管它似乎与我的 xmonad 安装冲突(我使用 xmonad 作为 TWM):
[grease-lightning]/home/.../builds/pandoc-static$ makepkg -s
==> Making package: pandoc-static 1.15.0.6-1 (Sun Aug 16 23:18:48 PDT 2015)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Found pandoc-static-1.15.0.6-1.tar.xz
-> Found pandoc-static-1.15.0.6-1.tar.xz.sig
==> Validating source files with sha512sums...
pandoc-static-1.15.0.6-1.tar.xz ... Passed
pandoc-static-1.15.0.6-1.tar.xz.sig ... Skipped
==> Verifying source file signatures with gpg...
pandoc-static-1.15.0.6-1.tar.xz ... Passed
==> Extracting sources...
-> Extracting pandoc-static-1.15.0.6-1.tar.xz with bsdtar
==> Starting prepare()...
==> Removing existing …
Run Code Online (Sandbox Code Playgroud) 我有一个脚本,它读取 VCS 日志,将其转换为乳胶,然后使用文本awk
替换@COMMITS@
模板中的关键字:
untagged=$(get-commit-messages "$server" "$rev")
IFS=$'\n' untagged=( $untagged ) # Tokenize based on newlines
for commit in "${untagged[@]}"; do
tex+="\\\nui{" # Wrap each commit in a custom command
tex+=$(echo "$commit" | pandoc -t latex --wrap=none)
tex+="}
"
done
awk -v r="$tex" '{gsub(/@COMMITS@/,r)}1' template
Run Code Online (Sandbox Code Playgroud)
由于提交消息实际上只是文本,因此我pandoc -t latex
用来确保所有内容都为 Latex 解析器正确转义。
我的问题是awk
解析器未转义这些。如果我_
在提交消息中找到 a ,pandoc
会将其替换为\_
,但随后awk
会将其转换回并发出警告:
awk: warning: escape sequence `\_' treated as plain `_'
Run Code Online (Sandbox Code Playgroud)
这将导致乳胶解析器失败。
有没有办法让我防止awk …
pandoc ×6
markdown ×3
pdf ×2
arch-linux ×1
awk ×1
cabal ×1
clipboard ×1
command-line ×1
conversion ×1
html ×1
xclip ×1
xmonad ×1