Класс PdfTextEncodingObfuscator
В этом разделе
Затеняет кодировку текста в шрифтах PDF документа.
Объектная модель
Синтаксис
'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
Смотрите также