Adobe Reader で PDF が正しく表示されません。他の PDF リーダーでは問題ないので、これは構文の問題であるに違いありません。Adobe Reader は PDF 構文により厳密であると聞いています。フォントは本来の 2 倍の大きさに見えますが、水平方向の間隔は正しいため、フォントが重なり合っています。
これは私の 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);
ランタイム v2.0.50727 で iTextSharp 5.4.2.0 を使用しています。
以前はキリル文字と中国語のアルファベットが機能していなかったので、いくつかのフォントを埋め込んだに違いありませんが、現在は機能しています。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;
}