是否可以在Azure App Service上安装字体?

时间:2016-08-09 18:44:40

标签: azure fonts azure-web-sites pdfsharp migradoc

我们正在使用MigraDoc / PDFsharp GDI +,它依赖于在系统中安装字体以进行渲染。我们已经尝试嵌入字体,但MigraDoc的GDI +版本似乎不支持这个。

尝试将此组件移动到Azure App Service时,无法找到字体。有没有办法将字体本地“安装”到App Service,以便它们对GDI可见?

4 个答案:

答案 0 :(得分:2)

MigraDoc使用PDFsharp生成PDF文件,PDFsharp可以使用嵌入资源中的字体或应用程序读取的文件。

我会使用PDFsharp / MigraDoc 1.50或更高版本的WPF版本并使用IFontResolver接口。

如果符合您的需要,您可以使用通用的EZFontResolver实现:
http://forum.pdfsharp.net/viewtopic.php?f=8&t=3244

答案 1 :(得分:1)

您可以在App Service上使用Windows容器来安装自定义字体。方法如下:

https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-windows-containers-custom-fonts

有关在App Service上使用Windows容器的入门:

https://docs.microsoft.com/en-us/azure/app-service/app-service-web-get-started-windows-container

答案 2 :(得分:0)

据我所知,依赖GDI API的组件可能无法在Azure Web APP上运行。我们可以在https://social.msdn.microsoft.com/Forums/en-US/6ed5c738-390a-4ca7-81d0-370124a4fc88/azure-websites-faq?forum=windowsazurewebsitespreview找到这个已知问题。目前,请尝试使用Azure Web角色或Azure VM。另请在Azure反馈论坛上投票this idea

答案 3 :(得分:0)

有点晚了-但总比没有好!

我发现这实际上很简单-我们都知道!

web.config 添加到应用程序服务的 WWWROOT 添加以下

除非您需要CORS,否则可能不需要部分

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>
        <directoryBrowse enabled="false" />
        <httpProtocol>
            <customHeaders>
                <add name="Access-Control-Allow-Origin" value="*" />
            </customHeaders>
        </httpProtocol>
        <staticContent>
            <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
            <mimeMap fileExtension=".ttf" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
            <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
            <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
        </staticContent>
    </system.webServer>
</configuration>