2016-08-05 5 views
0

У меня есть процесс печати, где мы не разрешаем замену шрифта поддерживать целостность документа. Единственный способ добиться этого - обеспечить включение всех шрифтов. Я указываю встроенный параметр, когда я вызываю перегрузку FontFactory.GetFont (строковое имя шрифта, строковое кодирование, bool embedded, float size). Код ниже - это тестовый код, который я использовал, чтобы попытаться найти решение. К сожалению, созданный pdf не имеет встроенных шрифтов.Шрифты, не встроенные в ItextSharp

public static void TestPDFEmbedd() 
    { 
     Document document = new Document(); 
     PdfWriter.GetInstance(document, new FileStream(SystemPaths.SystemPath + "\\Production\\Test.pdf", FileMode.Create)); 
     document.Open(); 
     FontFactory.Register("c:\\windows\\fonts\\tahomabd.ttf","address_font"); 
     Font font = FontFactory.GetFont("address_font",BaseFont.CP1252,true,10f); 
     document.Add(new Paragraph("Testing 123", font)); 
     document.Close(); 

    } 
+1

Если вы видите Helvetica вместо Tahoma Bold, ваш путь к шрифту неправильный. –

ответ

1

Эту проблему нельзя воспроизвести. Испытание привело к следующему PDF:

enter image description here

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

Как вы можете видеть, iTextSharp встроил шрифт. Более конкретно, подмножество шрифта. Если вы хотите встроить полный шрифт, вам нужно использовать подход, объясненный в ответе на этот вопрос: embed font into pdf using itextsharp

Чтение этого ответа, вы также заметите, что в прошлом были некоторые ошибки с шрифтами; когда люди жалуются на то, что не работает, мы всегда предполагаем, что они используют последнюю версию. Это предположение является разумным, потому что для людей не имеет смысла жаловаться на ошибку, которая была зафиксирована много лет назад.

+1

У меня была версия 5.5.7, установлена ​​версия 5.5.9 и возникла та же проблема. Я изменил шрифт от tahomabd.ttf до tahoma.ttf, и это привело к тому, что в формате pdf с встроенным шрифтом. Я вернулась к tahomabd.ttf, и это не входило. попробовал cour.ttf среди других, и это тоже не входило. Названные имена шрифтов похожи, но разные. Например, на tahomabd.ttf он отображается как tahoma-bold, и он заменяет tahoma, жирным шрифтом. Может быть, что-то не так с окнами 10? –

+0

Я смог воспроизвести ваш сценарий, свойство документов и функцию предполетности отображают встроенный шрифт. Когда я перехожу в «Инструменты-> Расширенное редактирование-> Коснитесь текстового инструмента» и выделите текст и просмотрите свойства, он говорит, что шрифт недоступен для просмотра. Кажется, есть несоответствие в Acrobat Reader Pro –

+0

Вы прочитали мой ответ? Я объяснил, что * встроено подмножество шрифта *. Это отражается в свойствах документа, и PDF передает предполетную проверку, когда вы проверяете, встроен ли шрифт. Однако вы хотите использовать шрифт для добавления текста. Это не сработает. Например: текст «Тестирование 123» не содержит буквы ** a **. Следовательно, вы не можете добавить текст Tahoma Bold с этим письмом, потому что он не во встроенном подмножестве. –

Смежные вопросы