• <menu id="w2i4a"></menu>
  • logo Aspose中文文檔

    文檔首頁>>Aspose中文文檔>>在 Azure 函數(shù)中使用 Aspose.Words 轉(zhuǎn)換包含圖像的文檔

    在 Azure 函數(shù)中使用 Aspose.Words 轉(zhuǎn)換包含圖像的文檔


    Aspose.Words是一種高級Word文檔處理API,用于執(zhí)行各種文檔管理和操作任務(wù)。API支持生成,修改,轉(zhuǎn)換,呈現(xiàn)和打印文檔,而無需在跨平臺應(yīng)用程序中直接使用Microsoft Word。

    Aspose API支持流行文件格式處理,并允許將各類文檔導(dǎo)出或轉(zhuǎn)換為固定布局文件格式和最常用的圖像/多媒體格式。

    Aspose.words 最新下載

    在部署到 Azure 時,使用 Azure Functions 中的 Aspose.Words 將包含圖像的文檔轉(zhuǎn)換為固定頁面格式在部署到 Azure 時無法正常工作,因?yàn)閳D像未保留。但是,這種轉(zhuǎn)換在本地計(jì)算機(jī)上正常工作。此問題背后的原因是 SkiaSharp 原生資產(chǎn)未正確發(fā)布。此問題在 Github 中報告給 Azure。

    為了解決此問題,您可以在 .csproj 文件中添加以下部分,以便正確復(fù)制本機(jī)資產(chǎn):

    <Target Name="CopyRequiredNativeAssets" AfterTargets="_FunctionsPostPublish">
    <ItemGroup>
    <NativeAssetToCopy Include="$(PublishDir)runtimes\win-x86\native\libSkiaSharp.dll" />
    </ItemGroup>
    <Copy SourceFiles="@(NativeAssetToCopy)" DestinationFolder="$(PublishDir)bin" />
    </Target>

    以下示例演示如何在 Azure 函數(shù)中使用 Aspose.Words,并詳細(xì)介紹如何添加上述代碼。

    先決條件
    • Active Azure 訂閱。如果您沒有免費(fèi)帳戶,請?jiān)陂_始之前創(chuàng)建一個免費(fèi)帳戶。
    • Visual Studio 2019 或 Visual Studio 2017 使用最新安裝的 Azure Functions 工具來創(chuàng)建項(xiàng)目。
    創(chuàng)建 Azure 函數(shù)應(yīng)用程序

    您需要使用 Visual Studio 創(chuàng)建 Azure Functions 應(yīng)用程序。創(chuàng)建的應(yīng)用程序已經(jīng)有一個簡單的“Hello World”函數(shù)代碼。

    在此示例中,您將創(chuàng)建一個簡單的“Hello World”文檔,并將其作為 PDF 文件返回到用戶的瀏覽器。要實(shí)現(xiàn)此目的,請執(zhí)行以下操作

    1、開始使用 Aspose.Words 創(chuàng)建函數(shù),方法是添加對最新版本的 Aspose.Words 的 NuGet 引用。然后修改代碼,如下所示:

    using System.IO;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Azure.WebJobs;
    using Microsoft.Azure.WebJobs.Extensions.Http;
    using Microsoft.AspNetCore.Http;
    using Microsoft.Extensions.Logging;
    using Aspose.Words;
    namespace AsposeWordsAzureTestApp
    {
    public static class CreateTestDocument
    {
    [FunctionName("CreateTestDocument")]
    public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
    ILogger log)
    {
    log.LogInformation("C# HTTP trigger function processed a request.");
    
    // Create a simple document using DocumentBuilder.
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);
    
    // Write some text in the document.
    builder.Writeln("Hello Aspose.Words!");
    
    // Write OS we are running on.
    builder.Writeln("You are running on " + System.Environment.OSVersion.VersionString);
    
    // Insert some image into the document.
    builder.InsertImage(@"https://cms.admin.containerize.com/templates/aspose/App_Themes/V3/images/aspose-logo.png");
    // Now save the created document to PDF and return as a FileContentResult.
    using (MemoryStream ms = new MemoryStream())
    {
    doc.Save(ms, SaveFormat.Pdf);
    return new FileContentResult(ms.ToArray(), "application/pdf")
    {
    FileDownloadName = "out.pdf"
    };
    }
    }
    }
    }

    2、在Visual Studio中運(yùn)行代碼以對其進(jìn)行測試。結(jié)果將顯示在控制臺輸出中。
    在 azure-functions_1 中轉(zhuǎn)換帶有圖像的文檔使用-aspose-words-


    3、將 URL 從控制臺輸出復(fù)制到您喜歡的瀏覽器以獲取輸出文檔,該文檔應(yīng)如下所示:

    converting-a-document-with-images-using-aspose-words-in-azure-functions_2

    4、現(xiàn)在,如果將創(chuàng)建的函數(shù)部署到 Azure,則由于本文開頭所述的問題,將不會呈現(xiàn)映像。輸出如下所示:
    converting-a-document-with-images-using-aspose-words-in-azure-functions_3

    5、在記事本中打開 .csproj 文件,并向其添加以下部分:

    <Target Name="CopyRequiredNativeAssets" AfterTargets="_FunctionsPostPublish"> <br> <ItemGroup> <br> <NativeAssetToCopy<br> Include="$(PublishDir)runtimes\win-x86\native\libSkiaSharp.dll" /> <br> </ItemGroup> <br> <Copy SourceFiles="@(NativeAssetToCopy)" <br> DestinationFolder="$(PublishDir)bin" /> <br> </Target>

    6、再次發(fā)布項(xiàng)目,并驗(yàn)證圖像現(xiàn)在是否存在于生成的輸出中。

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();