Expose a REST API to Watermark Word Documents

# ASP.NET Core REST APIを使用してWord文書に透かしを追加する方法

このチュートリアルでは、ASP.NET Core で Word ドキュメントに水マークを追加するための REST API をどのように表示するかについて説明します** ステップ・ステップの指示、設定の詳細、および主要なプラットフォームの実装ガイドラインが含まれています。

REST API を通じて Word ドキュメントに水マークを追加するためのステップ

  • ASP.NET Core Web API プロジェクトを設定して、水マークを追加します。
  • インストール ASPOSE.Words for .NET NuGet パッケージマネージャー
  • Word ファイルおよび水マークテキストまたは画像パラメーターを受け入れるためのエンドポイントを持つコントローラーを作成します。
  • コードを書き、Word ドキュメントにテキストまたは画像の水標を追加します。
  • ポストマンやcURLなどのツールを使用して API をローカルでテストします。
  • API を Windows、Linux、または macOS 環境に配置します。
  • Nginx または IIS を設定して、生産を展開します。

これらのステップは、 Watermark API を作成し、展示するための詳細なアプローチを提供します。

コード 例: REST API for Adding Watermarks

以下は、Word ドキュメントにテキストウォーターマークを追加する REST API を表示するための実行可能なコード スナイプです。

using System.IO;
using System.Threading.Tasks;
using Aspose.Words;
using Aspose.Words.Drawing;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

namespace WatermarkAPI.Controllers
{
    [ApiController]
    [Route("api/[controller]")]
    public class WatermarkController : ControllerBase
    {
        [HttpPost("add-watermark")]
        public async Task<IActionResult> AddWatermark(IFormFile file, [FromQuery] string watermarkText)
        {
            if (file == null || file.Length == 0 || string.IsNullOrWhiteSpace(watermarkText))
                return BadRequest("Please upload a valid Word document and provide a watermark text.");

            try
            {
                var tempFilePath = Path.GetTempFileName();
                using (var stream = new FileStream(tempFilePath, FileMode.Create))
                {
                    await file.CopyToAsync(stream);
                }

                Document doc = new Document(tempFilePath);
                AddTextWatermark(doc, watermarkText);

                var outputStream = new MemoryStream();
                doc.Save(outputStream, SaveFormat.Docx);

                outputStream.Position = 0;
                return File(outputStream, "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "watermarked.docx");
            }
            catch (System.Exception ex)
            {
                return StatusCode(500, $"Internal server error: {ex.Message}");
            }
        }

        private void AddTextWatermark(Document doc, string text)
        {
            foreach (Section section in doc.Sections)
            {
                var watermark = new Shape(doc, ShapeType.TextPlainText)
                {
                    TextPath = { Text = text, FontFamily = "Arial" },
                    Width = 300,
                    Height = 70,
                    Rotation = -40,
                    FillColor = System.Drawing.Color.LightGray,
                    StrokeColor = System.Drawing.Color.LightGray,
                    WrapType = WrapType.None,
                    BehindText = true,
                    RelativeHorizontalPosition = RelativeHorizontalPosition.Page,
                    RelativeVerticalPosition = RelativeVerticalPosition.Page,
                    Left = 100,
                    Top = 200
                };

                section.HeadersFooters[HeaderFooterType.HeaderPrimary]?.AppendChild(watermark);
            }
        }
    }
}

大型プラットフォームでの利用

・Windows

  • IIS をインストールし、公開されたアプリケーション フォルダーを参照するためにサイトを設定します。
  • 申請書を公開する:
dotnet publish -c Release -o publish

Linux について

  • ASP.NET Core の実行時間をインストールする:
sudo apt-get install -y aspnetcore-runtime-7.0
  • 申請書を公開する:
dotnet publish -c Release -o publish
  • Nginx を Kestrel サーバーへのプロキシ トラフィックに設定します。

マコス

  • .NET の実行時間をインストールする 公式サイト .
  • 編集・実行:
dotnet publish -c Release -o publish
cd publish
dotnet WatermarkAPI.dll

共通の問題と修正

  • 無効入力エラー:アップロードされたファイルが有効なWordドキュメントであり、ウォーターマークテキストが無効であることを確認します。
  • アクセス拒否エラー:Linux/macOSでは、適切な許可をアプリケーションフォルダーに与える。
chmod -R 755 /path/to/app
  • パフォーマンス問題: 大型ファイルでは、ストリームではなくディスクから直接ファイルを処理することによってメモリの使用を最適化します。

このガイドでは、Word ドキュメントに Aspose.Words for .NET を使用して水マークを追加するための REST API を作成し、すべての主要なプラットフォームにインストールする方法を示しています。

 日本語