Использование пользовательских шрифтов для водяных знаков

GroupDocs.Watermark является надежной библиотекой для управления водяными знаками в документах различных форматов, предлагая широкий спектр вариантов настройки. Среди ее мощных функций - возможность использовать пользовательские шрифты, что позволяет разработчикам внедрять уникальную типографику в свои водяные знаки.

В этой статье мы исследуем, как использовать настраиваемые шрифты, которые не установлены в системе. Кроме того, мы продемонстрируем, как настроить контейнер Docker для Linux для тестовых сценариев, в которых определенные шрифты установлены непосредственно в среде контейнера.

Почему использовать кастомные шрифты для водяных знаков?

Использование пользовательских шрифтов для ватермарок предлагает несколько преимуществ:

  1. Брендовая идентичность: Убедитесь, что ваши документы соответствуют типографским рекомендациям вашей организации.
  2. Система независимость: Избегайте зависимости от шрифтов, установленных в системе, обеспечивая переносимость и совместимость в различных средах.

Как GroupDocs.Watermark поддерживает пользовательские шрифты?

GroupDocs.Watermark упрощает использование пользовательских шрифтов, позволяя разработчикам указывать папку, содержащую файлы шрифтов. Вы можете затем ссылаться на нужный шрифт по его названию, что делает процесс водяных знаков гибким и легким для интеграции в ваш рабочий процесс.

Реализация включает три основных шага:

  1. Укажите папку, содержащую шрифты: Определите путь к каталогу, который содержит ваши файлы шрифтов (например, .ttf, .otf).
  2. Установите шрифт для водяного знака: Используйте класс Font, чтобы инициализировать шрифт с его названием, путем к папке и размером.
  3. Добавьте водяной знак в документ: Примените настроенный водяной знак к вашему целевому документу.

Пошаговая реализация на C#

Вот как вы можете использовать пользовательские шрифты в вашем решении для водяных знаков с GroupDocs.Watermark:

Ключевые шаги:

  • Укажите путь к документу и выходному файлу.
  • Установите путь к папке, в которой находятся файлы пользовательского шрифта.
  • Инициализируйте объект Font с именем семейства и свойствами.
  • Создайте текстовый водяной знак и настройте его свойства.
  • Добавьте водяной знак в документ и сохраните его.
using GroupDocs.Watermark;
using GroupDocs.Watermark.Options; 
using GroupDocs.Watermark.Watermarks; 

class Program
{
    static void Main()
    {
        string documentPath = "path-to-your-document.docx"; 
        string outputFileName = "path-to-output/document-with-watermark.docx"; 

        // Initialize the Watermarker
        using (Watermarker watermarker = new Watermarker(documentPath))
        {
            // Specify the folder containing custom font files
            string fontsFolder = "path-to-folder_with_fonts";

            // Initialize the font to be used for the watermark
            Font font = new Font("font_family_name", fontsFolder, 36, FontStyle.Bold); // Font family name, size and style

            // Create the watermark object
            TextWatermark watermark = new TextWatermark("Test watermark", font);

            // Set additional watermark properties
            watermark.ForegroundColor = Color.Blue; // Set the foreground color of the watermark
            watermark.Opacity = 0.4; // Set the opacity of the watermark
            watermark.HorizontalAlignment = HorizontalAlignment.Center; // Center horizontally
            watermark.VerticalAlignment = VerticalAlignment.Center; // Center vertically

            // Add the watermark to the document
            watermarker.Add(watermark);

            // Save the watermarked document
            watermarker.Save(outputFileName);
        }
    }
}

Тестирование GroupDocs.Watermark в контейнере Docker на Linux

При тестировании GroupDocs.Watermark в контейнере Docker под управлением Linux вы можете столкнуться с ситуациями, когда хотите предположить, что определенные шрифты установлены в системе. Это особенно полезно для проверки функциональности, зависимой от шрифтов, или для сред, где настройка папки шрифтов невозможна.

Вот как настроить контейнер Docker для установки необходимых зависимостей и пользовательских шрифтов.

Dockerfile для тестирования

Ниже приведен пример Dockerfile для запуска проекта .NET под названием WebApp в контейнере Docker на базе Linux. Файл также демонстрирует, как установить пользовательский шрифт (MyFont.ttf) и зависимости, необходимые для GroupDocs.Watermark:

# Use ASP.NET runtime as base image
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80

# Add libgdiplus and libc6-dev for graphics support
RUN apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev

# Add `contrib` archive area to package sources list
RUN sed -i'.bak' 's/$/ contrib/' /etc/apt/sources.list

# Add default fonts
RUN apt-get update && apt-get install -y ttf-mscorefonts-installer fontconfig
RUN fc-cache -f -v # Refresh font cache

# Copy custom font to the font directory
COPY ["WebApp/MyFont.ttf", "/usr/share/fonts/truetype/"]
RUN fc-cache -f -v # Refresh font cache again

# Building the .NET application
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["WebApp/WebApp.csproj", "WebApp/"]
RUN dotnet restore "WebApp/WebApp.csproj"
COPY . .
WORKDIR "/src/WebApp"
RUN dotnet build "WebApp.csproj" -c Release -o /app/build

# Publish the application
FROM build AS publish
RUN dotnet publish "WebApp.csproj" -c Release -o /app/publish /p:UseAppHost=false

# Final stage with ASP.NET runtime
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .

# Set the entry point for the container
ENTRYPOINT ["dotnet", "WebApp.dll"]

Ключевые моменты в Dockerfile

Установка необходимых библиотек:

RUN apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev

Эти библиотеки необходимы для правильного отображения изображений в Linux.

Установка шрифтов по умолчанию:

RUN apt-get update && apt-get install -y ttf-mscorefonts-installer fontconfig

RUN fc-cache -f -v

Этот шаг устанавливает шрифты по умолчанию, которые необходимы, если вы используете GroupDocs.Watermark без установки лицензии.

Добавление пользовательского шрифта:

COPY ["WebApp/MyFont.ttf", "/usr/share/fonts/truetype/"]

RUN fc-cache -f -v

Эта команда копирует пользовательский шрифт (MyFont.ttf) в соответствующий каталог шрифтов в контейнере и обновляет кэш шрифтов.

Создание и запуск приложения:

Оставшиеся команды настраивают контейнер Docker для сборки и запуска вашего приложения .NET (WebApp), обеспечивая доступность пользовательского шрифта во время выполнения.

Включение поддержки Unix в .csproj

Из-за ограничений в библиотеке System.Drawing.Common в .NET 6 для Linux, вам необходимо включить поддержку Unix, добавив специальную настройку в ваш файл .csproj. Для получения дополнительной информации об этих ограничениях обратитесь к документации Microsoft.

<ItemGroup>
    <RuntimeHostConfigurationOption Include="System.Drawing.EnableUnixSupport" Value="true" />
</ItemGroup>

Эта настройка гарантирует, что функциональные возможности System.Drawing работают правильно в среде Linux, что необходимо для корректного отображения при использовании GroupDocs.Watermark.

Лучшие практики использования кастомных шрифтов

Чтобы максимально использовать эту функцию, следуйте этим лучшим практикам:

  1. Организуйте шрифты: Держите ваши пользовательские шрифты организованными в отдельной папке для легкой ссылки.
  2. Проверьте имена шрифтов: Убедитесь, что вы правильно указываете имя семейства шрифтов, чтобы избежать проблем с отображением.
  3. Тестирование в контейнеризованной среде: Используйте контейнеры Docker для тестирования вашего приложения в контролируемой, основанной на Linux, среде.

Заключение

Возможность использовать пользовательские шрифты в GroupDocs.Watermark повышает ваш контроль над дизайном водяных знаков, позволяя вам соответствовать конкретным требованиям к брендингу и стилю. Указывая папку со шрифтами или устанавливая шрифты в контейнере Linux, вы можете без проблем тестировать и развертывать ваше приложение в любой среде.

Предоставленный Dockerfile и примеры на C# служат исчерпывающим руководством для реализации и тестирования этой функциональности. Попробуйте их, чтобы убедиться, что ваше решение для водяных знаков гибкое, портативное и готово к производству.

Получить бесплатную пробную версию

Вы можете бесплатно попробовать API GroupDocs.Watermark, просто скачав и установив последнюю версию на нашем release downloads website.

Вы также можете получить временную лицензию, чтобы протестировать все функции библиотеки без каких-либо ограничений. Перейдите на страницу временной лицензии, чтобы подать заявку на временную лицензию.

См. также

Для получения дополнительной информации и дополнительных ресурсов вы можете найти следующие ссылки полезными: