标签: pandoc

使用 pandoc 将 .docx 转换为 .pdf

我正在尝试使用 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?

character-encoding pandoc microsoft-word

21
推荐指数
2
解决办法
2万
查看次数

Pandoc 中的 Markdown 到 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命令将文件分成几页,以防万一。

我将不胜感激任何指点!

pdf conversion markdown pandoc

18
推荐指数
3
解决办法
9001
查看次数

将 Markdown 输入作为富文本复制到剪贴板

我即将通过电子邮件与我的一个朋友一起参与一些散文写作。作为一个普通人,他当然会使用 MS Word 文档格式;作为一个大书呆子,我更喜欢在电脑上写作时使用 Markdown。

我需要的是这个关于将从网页复制的富文本转换为 markdown 的问题完全相反。我天真的最坏情况工作流程是:

  1. 用 Markdown 编写文档
  2. pandoc -S file.mkd -o temp.html
  3. temp.html在网络浏览器中打开
  4. 从页面复制并粘贴到 libreoffice 中打开的文档

我确信这可以优化。

(在这种情况下,Google Docs 不是一个选项)。

尽管我已经回答了主要问题,但我仍然觉得这可以进一步优化。如果有任何方法可以连接 .doc 文件(我将接收和 pandoc 可以写入的文件),也许使用 libreoffice 命令行界面,那么我想有可能构建一个过于复杂的单行和完全避免离开航站楼。如果有人找到一种方法来做到这一点,我会很乐意接受我自己的答案。

clipboard html markdown xclip pandoc

13
推荐指数
1
解决办法
2666
查看次数

在命令行中将 markdown 转换为 pdf

在命令行中将 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。

command-line pdf markdown pandoc

13
推荐指数
1
解决办法
1万
查看次数

如何在 ArchLinux 上安装 Pandoc

有人对如何在 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)

arch-linux xmonad pandoc cabal

4
推荐指数
2
解决办法
4425
查看次数

避免 awk 注入

我有一个脚本,它读取 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 …

awk pandoc

4
推荐指数
1
解决办法
171
查看次数