VintaSoft Imaging .NET SDK 14.0: Документация для .NET разработчика
Vintasoft.Imaging.Pdf Namespace / PdfTextEncodingObfuscator Class
    Класс PdfTextEncodingObfuscator
    В этом разделе
    Затеняет кодировку текста в шрифтах PDF документа.
    Объектная модель
    PdfTextEncodingObfuscator
    Синтаксис
    'Declaration
    
    Public Class PdfTextEncodingObfuscator
    
    
    public class PdfTextEncodingObfuscator
    
    
    public __gc class PdfTextEncodingObfuscator
    
    
    public ref class PdfTextEncodingObfuscator
    
    
    Ремарки

    Обфускация кодировки текста состоит из 2-х шагов:

    • Из шрифта удаляются коды символов Unicode
    • Программа шрифтов меняется случайным образом (переставляются глифы, не используются) глифы удаляются; добавляются повторяющиеся глифы и т. д.).

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

    Текущая версия поддерживает обфускацию шрифтов TrueType, Type1 и Type3.
    A System.NotSupportedException будет генерироваться всякий раз, когда во время обфускации встречается неподдерживаемый шрифт.
    A System.InvalidOperationException будет генерироваться всякий раз, когда во время обфускации встречается внешний шрифт.

    Важно! - PDF документ должен быть упакован (Pack) после обфускации кодировки текста, иначе исходные кодировки можно восстановить.

    Пример

    Вот пример, показывающий, как скрыть кодировку встроенных шрифтов в PDF документе:

    
    ''' <summary>
    ''' Obfuscates encoding of all fonts of PDF document.
    ''' </summary>
    ''' <param name="pdfFilename">The filename of PDF document.</param>
    ''' <param name="resultFilename">The filename of resulting PDF document.</param>
    Public Shared Sub ObfuscateEncodingOfAllFonts(pdfFilename As String, resultFilename As String)
        Using document As New Vintasoft.Imaging.Pdf.PdfDocument(pdfFilename)
            ' create obfuscator
            Dim textEncodingObfuscator As New Vintasoft.Imaging.Pdf.PdfTextEncodingObfuscator()
            Try
                ' obfuscate all fonts
                textEncodingObfuscator.Obfuscate(document)
                ' pack and save document to new location
                document.Pack(resultFilename)
            Catch ex As System.Exception
                System.Console.WriteLine(ex.Message)
            End Try
        End Using
    End Sub
    
    
    
    /// <summary>
    /// Obfuscates encoding of all fonts of PDF document.
    /// </summary>
    /// <param name="pdfFilename">The filename of PDF document.</param>
    /// <param name="resultFilename">The filename of resulting PDF document.</param>
    public static void ObfuscateEncodingOfAllFonts(string pdfFilename, string resultFilename)
    {
        using (Vintasoft.Imaging.Pdf.PdfDocument document = new Vintasoft.Imaging.Pdf.PdfDocument(pdfFilename))
        {
            // create obfuscator
            Vintasoft.Imaging.Pdf.PdfTextEncodingObfuscator textEncodingObfuscator = 
                new Vintasoft.Imaging.Pdf.PdfTextEncodingObfuscator();
            try
            {
                // obfuscate all fonts
                textEncodingObfuscator.Obfuscate(document);
                // pack and save document to new location
                document.Pack(resultFilename);
            }
            catch (System.Exception ex)
            {
                System.Console.WriteLine(ex.Message);
            }
        }
    }
    
    

    Иерархия наследования

    System.Object
       Vintasoft.Imaging.Pdf.PdfTextEncodingObfuscator

    Требования

    Целевые платформы: .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

    Смотрите также