1

我正在使用 docfx 为库创建文档。我已将 docfx 作为 Visual Studio 的 NuGet 包安装,我想从我的解决方案创建 PDF 文档。每次我构建项目时,docfx 都会抛出一个错误,指出

wkhtmltopdf 是生成 PDF 时的先决条件。请先从https://wkhtmltopdf.org/downloads.html安装它,然后将可执行文件夹保存到 %PATH%。或者,您可以从https://chocolatey.org使用choco install wkhtmltopdf.

我已下载 wkhtmltopdf 并将其添加到 PATH。

我将 JSON 文件配置为创建 PDF 文档,并toc.yml在名为pdf.

JSON文件:

{
  "metadata": [
    {
      "src": [
        {
          "files": [
            "*.csproj"
          ],
          "cwd": ".",
          "exclude": [
            "**/obj/**",
            "**/bin/**",
            "_site/**"
          ]
        }
      ],
      "dest": "obj/api"
    }
  ],
  "pdf": {
    "content": [
      {
        "files": [
          "api/**.yml"
        ],
        "exclude": [
          "**/toc.yml",
          "**/toc.md"
        ]
      },
      {
        "files": [
          "articles/**.md",
          "articles/**/toc.yml",
          "toc.yml",
          "*.md",
          "pdf/*"
        ],
        "exclude": [
          "**/bin/**",
          "**/obj/**",
          "_site_pdf/**",
          "**/toc.yml",
          "**/toc.md"
        ]
      },
      {
        "files": "pdf/toc.yml"
      }
    ],
    "resource": [
      {
        "files": [
          "images/**"
        ],
        "exclude": [
          "**/bin/**",
          "**/obj/**",
          "_site_pdf/**"
        ]
      }
    ],
    "overwrite": [
      {
        "files": [
          "apidoc/**.md"
        ],
        "exclude": [
          "**/bin/**",
          "**/obj/**",
          "_site_pdf/**"
        ]
      }
    ],
    "dest": "_site_pdf"
  }
}

toc.yml文件:

- name: Articles
  href: ../articles/toc.yml
- name: Api Documentation
  href: ../api/toc.yml

我的图书馆解决方案文件夹结构:

|- _site
|- api
   |- index.yml
|- articles
   |- intro.md
   |- toc.md
|- pdf
   |- toc.yml
|- docfx.json
|- toc.yml
|- index.yml
(Other visual studio solution files are in this folder)

我希望在构建解决方案时创建一个 _site_pdf 文件夹,但我收到一条错误消息,指出 wkhtmltopdf 丢失,即使它已安装并添加到路径中。我怀疑问题出在我的 toc 或 JSON 文件上,但我对这两种文件的经验都很少,所以我找不到问题所在。

4

1 回答 1

0

您必须在“pdf”部分下的 docfx.json 中添加以下部分。

"wkhtmltopdf": {
  "additionalArguments": "--enable-local-file-access"
},
于 2021-08-13T11:59:17.043 回答