簡體   English   中英

如何將GhostScript NuGet package 添加到Azure Function App?

[英]How to add GhostScript NuGet package to Azure Function App?

我正在嘗試創建一個 Azure Function 應用程序,它將一組文檔合並到一個 PDF 中。我還需要將一些圖像轉換為 PDF 並將它們包含在合並的 output 文件中。

我有一個有效的 Power Automate Desktop 流程,它使用 PowerShell 腳本運行 ImageMagick 以將圖像轉換為 PDF,並使用 GhostScript 將所有 PDF 文檔合並為一個 PDF output 文件。 我想將我的 PAD 流和 PowerShell 腳本移植到 Azure Function 應用程序,希望加快運行時間和響應時間到 Power Apps canvas 應用程序。

一個額外的目標是用數據填充 .docx 模板並首先將它們轉換為 PDF,然后運行合並腳本和 output 填充和合並的文檔以供 Power Apps 使用。

讓我通過專門關注該項目的 GhostScript 方面來簡化我的問題。 我的問題是,當我嘗試運行do.net add package GhostScript.NET --version 1.2.3時,我得到以下 output:

warn: NU1701: Package 'Ghostscript.NET 1.2.3' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8, .NETFramework,Version=v4.8.1' instead of the project target framework .net6.0'. This package may not be fully compatible with your project.

我正在使用 Azure 函數運行時版本 ~4 和 .NET 版本 6.0.403。 這是 my.csproj 的樣子:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <AzureFunctionsVersion>v4</AzureFunctionsVersion>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="GhostScript.NET" Version="1.2.3" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.1.1" />
  </ItemGroup>
  <ItemGroup>
    <None Update="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
</Project>

在我的“HttpTrigger1.cs”文件中, using GhostScript.NET; 我收到以下錯誤:

The type or namespace name 'GhostScript' could not be found (are you missing a using directive or an assembly reference?)

有什么想法可以糾正這些問題嗎? 我正在使用 VSCode 編輯項目,並使用 GitHub 持續部署到 function 應用程序。

我嘗試使用降級的 .NET 版本的 3.X 創建一個新項目,但在導入 GhostScript.NET 后嘗試恢復項目時出現更多錯誤。 我什至不確定為什么我需要 GhostScript.NET ...

我正在關注這個已經過時的舊博客: http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/3303/Convert-PDF-files-to-PNG-Images-using-Azure-Functions。 ASPX

我的 PowerShell 腳本在本地 VM 中運行並且工作正常,只需要使用“gs9550w64.exe”安裝 GhostScript。 這是 GhostScript V9.55.0 的安裝程序可執行文件。 上面的博文說我需要將 GhostScript 安裝中的 .dll 放入 GhostScript.NET 目錄,如 /data/Functions/packages/nuget/ghostscript.net/1.2.1/lib.net40/gsdll64.dll。 當然,我有 64 位。dll 但博客使用的是 32 位,默認 Azure Function 應用程序平台是 32 位,所以我必須稍后決定如何處理,但我還沒有到那個地步. 另外,該博客使用的是GhostScript.NET V1.2.1,但最新版本是1.2.3。 無論如何,由於我在嘗試將 GhostScript.NET package 安裝到該項目時看到的錯誤,我什至沒有走那么遠。

非常感謝您的幫助!

我正在使用 Azure 函數運行時版本 ~4 和 .NET 版本 6.0.403。

如果您使用的是 .NET 6,那么 GhostScript.Net package 將不起作用,因為它僅適用於 NuGet 官方網站中正式提及的.NET 框架版本。在此處輸入圖像描述

GhostScript.Net Core用於 .NET 6 相關應用。 - nuget.org/packages/GhostScript.NetCore

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM