abcpdf - повторно использовать существующий шрифт в PDF

Мне интересно, можно ли повторно использовать существующий шрифт, который уже был встроен в PDF. Я спрашиваю об этом, потому что, когда я добавляю шрифт, который хочу использовать в PDF, он выглядит так, как будто он был добавлен в файл PDF несколько раз:

введите здесь описание изображения

Кажется, я не могу найти шрифт по его названию. Я встраиваю шрифт так:

Doc theDoc = new Doc();
theDoc.Read("existing-pdf-file.pdf");
int FONT_MyriadPro = theDoc.EmbedFont("Myriad Pro");
theDoc.Font = FONT_MyriadPro;
theDoc.AddText("Example");

Я отмечаю, что переменная FONT_MyriadPro имеет значение 61, поэтому я предполагаю, что можно ссылаться на другие существующие шрифты. А можно узнать что за шрифт? Кажется, что в объекте Doc нет коллекции шрифтов.


person Rocklan    schedule 06.01.2014    source источник


Ответы (1)


Сам документ может содержать разные шрифты. Они недоступны через метод XFont.FindName, но вы можете найти их, просмотрев документ ObjectSoup.

В определенной степени шрифты в документе могут использоваться повторно. Однако нередко можно найти шрифты в состоянии, когда их нельзя разумно использовать повторно. Например, подмножество шрифтов часто удаляет важные символы, которые вы, возможно, захотите использовать.

В большинстве случаев лучше использовать общедоступный шрифт, который, как вы знаете, не будет искажен.

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

person OnceUponATimeInTheWest    schedule 10.01.2014