Мой PDF-код не отображается правильно с Adobe Reader. Это хорошо с другими читателями PDF, поэтому это должно быть проблемой синтаксиса, поскольку я слышал, что Adobe Reader более строг с синтаксисом PDF. Шрифты, по-видимому, в два раза больше, чем должны быть, но горизонтальное расстояние правильное, это заставляет шрифты пересекаться друг с другом.iTextSharp встроенный кириллический шрифт в Adobe Reader
Это мой код C# (код создания шрифта находится в конце этого сообщения).
Font officialUseFont = EmbeddedResources.CreateDesignFont(webform);
PdfContentByte officialUseCanvas = _stamper.GetOverContent(3);
ColumnText.ShowTextAligned(officialUseCanvas, Element.ALIGN_CENTER, new Phrase(webform.Text, officialUseFont), posX, posY, 0);
Я использую iTextSharp 5.4.2.0 со временем выполнения v2.0.50727.
Я, должно быть, вложил некоторые шрифты, потому что кириллица и китайские алфавиты раньше не работали, но теперь они работают. Поля формы, которые существуют в PDF, заполнены кириллическими символами без каких-либо проблем, это только проблема с холстом.
public Font CreateDesignFont(IForm webform)
{
var baseFont = GetBaseFont(fontNamespace.Length, selectedFontName);
return new Font(baseFont, webform.FontSize);
}
private static BaseFont GetBaseFont(int fontNamespaceLength, string selectedFontName)
{
byte[] fontBuffer;
using (var stream = (Assembly.GetExecutingAssembly().GetManifestResourceStream(selectedFontName)))
{
fontBuffer = new byte[stream.Length];
stream.Read(fontBuffer, 0, fontBuffer.Length);
}
var fontfile = selectedFontName.Substring(fontNamespaceLength);
var customFont = BaseFont.CreateFont(fontfile, BaseFont.IDENTITY_H, BaseFont.EMBEDDED, BaseFont.CACHED, fontBuffer, null);
return customFont;
}
Извините, я только что допустил ошибку в исходном сообщении. Я использую версию 5.4.2.0 – fireydude
Просьба представить PDF для проверки. – mkl
У вас есть достаточно информации в сообщении сейчас? Я мог бы поместить PDF в папку Dropbox, если вам это нужно. – fireydude