あなたがこれを尋ねてからしばらく経っていることは知っていますが、私は私が助けることができるかもしれないと考えました.
フォント ファイルを抽出できるユーティリティがあるかどうかはわかりませんが、手動で行うことができます。
基本的に、PDF ファイルはさまざまなオブジェクトを含むテキスト ファイルです。任意のテキスト エディタで開いて、フォントを探すことができます。
フォントは FontDescriptor オブジェクトで指定されます。
<</Type/FontDescriptor/FontName/ABCDEE+Algerian ... /FontFile2 24 0 R>>
これは基本的に、Algerian という名前のフォントがオブジェクト 24 で指定されていることを示しています。「24 0 obj」行でオブジェクト 24 のドキュメントを検索できます。この行の後に、フォント ファイルを含むストリームのプロパティが表示されます。 「stream」キーワードの後から始まります (その長さは obj の後の行で定義されます)。
このストリームには、圧縮された ttf ファイルが含まれています。解凍するには、次の方法を使用できます。
private static byte[] DecodeFlateDecodeData(byte[] data)
{
MemoryStream outputStream;
using (outputStream = new MemoryStream())
{
using (var compressedDataStream = new MemoryStream(data))
{
// Remove the first two bytes to skip the header (it isn't recognized by the DeflateStream class)
compressedDataStream.ReadByte();
compressedDataStream.ReadByte();
var deflateStream = new DeflateStream(compressedDataStream, CompressionMode.Decompress, true);
var decompressedBuffer = new byte[1024];
int read;
while ((read = deflateStream.Read(decompressedBuffer, 0, decompressedBuffer.Length)) != 0)
{
outputStream.Write(decompressedBuffer, 0, read);
}
outputStream.Flush();
compressedDataStream.Close();
}
return GetStreamBytes(outputStream);
}
}
これがあなたに役立つことを願っています...または他の誰かに役立つことを願っています