首页 > 解决方案 > PDFsharp MigraDoc 字体在 Azure Web 应用程序中不起作用

问题描述

VS2017 .NET 4.7

我编写了一个创建 PDF 的 Web 应用程序,我安装的唯一相关 nuget 包是:

PDFsharp-MigrDoc-GDI v1.32.4334

它在我的开发机器上本地运行良好。

但是当我将它发布到 Azure 时,我得到了错误:

无法检索字体数据。

我发现我需要在代码中包含我用作资源的字体,因为它们可能不存在于 Azure 上。

我也发现了这个:

https://github.com/empira/PDFsharp/blob/master/src/PdfSharp/Fonts/PlatformFontResolver.cs

但我开始感到困惑。我需要哪些包?我需要 PDFsharp、MigraDoc 还是两者都需要?

任何指向我正确方向的帮助都会有所帮助。或者。适用于 Azure Web 应用程序的简单示例“Hello World”PDF(使用 PDFsharpe/MigraDoc)解决方案。

谢谢

标签: c#azurepdfsharpmigradoc

解决方案


MigraDoc 是一组用于创建文档的 API。

PDFsharp 是一个创建 PDF 文件的库。

如果您使用 MigraDoc API,您将需要 MigraDoc 和 PDFsharp。如果您只使用 PDFsharp API,那么您只需要包含 PDFsharp 的包,而不需要包含 MigraDoc。

要使用 IFontResolver,您需要 WPF 构建版本 1.50 或更高版本。

使用 MigraDoc:
https ://www.nuget.org/packages/PDFsharp-MigraDoc-wpf/1.50.4845-RC2a

只是 PDFsharp:
https ://www.nuget.org/packages/PDFsharp-wpf/1.50.4845-RC2a

EZFontResolver 可能有助于简化使用 IFontResolver:
https ://forum.pdfsharp.net/viewtopic.php?f=8&t=3244

PDFsharp 示例包括从资源加载字体的 FontResolver 示例:
https ://github.com/empira/PDFsharp-samples


推荐阅读