Извлечение шрифтов из PDF

Contents
[ ]

Если вы хотите получить все шрифты из PDF-документа, вы можете использовать метод Document.IDocumentFontUtilities.getAllFonts(), предоставляемый в классе Document. Пожалуйста, ознакомьтесь с приведённым ниже фрагментом кода, чтобы получить все шрифты из существующего PDF-документа:


    // Создайте новый экземпляр класса License и установите файл лицензии.
    $licenceObject = new License();
    $licenceObject->setLicense($license);

    // Установите путь к каталогу, содержащему PDF-документ, и выходному каталогу для извлечённых шрифтов.
    $dataDir = getcwd() . DIRECTORY_SEPARATOR . "samples";
    $inputFile = $dataDir . DIRECTORY_SEPARATOR . "sample.pdf";

    // Инициализируйте переменную данных ответа.
    $responseData = "";

    try {
        // Загрузите PDF-документ.
        $document = new Document($inputFile);

        // Получите все шрифты, используемые в PDF-документе.
        $fonts = java_values($document->getFontUtilities()->getAllFonts());

        // Переберите каждый шрифт и сохраните его как файл шрифта TrueType.
        foreach ($fonts as $font) {
            // Установите путь к выходному файлу для файла шрифта.
            $outputFile = $dataDir . DIRECTORY_SEPARATOR . "results" . DIRECTORY_SEPARATOR . $font->getFontName() . ".ttf";

            // Создайте объект FileOutputStream для записи файла шрифта.
            $fontStream = new java("java.io.FileOutputStream", $outputFile);

            // Сохраните шрифт как файл шрифта TrueType.
            $font->save($fontStream);

            // Закройте поток шрифта.
            $fontStream->close();

            // Добавьте имя шрифта к данным ответа.
            $responseData = $responseData . $font->getFontName() . ", ";
        }

        // Закройте PDF-документ.
        $document->close();
    }