iText と iTextSharp には微妙な違いがあります。
iText では、registerDirectories()
次のようになります。
public int registerDirectories() {
int count = 0;
String windir = System.getenv("windir");
String fileseparator = System.getProperty("file.separator");
if (windir != null && fileseparator != null) {
count += registerDirectory(windir + fileseparator + "fonts");
}
count += registerDirectory("/usr/share/X11/fonts", true);
count += registerDirectory("/usr/X/lib/X11/fonts", true);
count += registerDirectory("/usr/openwin/lib/X11/fonts", true);
count += registerDirectory("/usr/share/fonts", true);
count += registerDirectory("/usr/X11R6/lib/X11/fonts", true);
count += registerDirectory("/Library/Fonts");
count += registerDirectory("/System/Library/Fonts");
return count;
}
ただし、iTextSharp では、メソッドは次のようになります。
public virtual int RegisterDirectories() {
string dir = Path.Combine(
Path.GetDirectoryName(
Environment.GetFolderPath(Environment.SpecialFolder.System)), "Fonts");
return RegisterDirectory(dir);
}
Java はプラットフォームに依存しないため、「通常の容疑者」を探す必要があります。C# は Windows 固有であるため、フォントの場所は環境に依存します。あなたの質問は、Mono がこれをサポートしていないことを示しているため、使用する必要がありますFontFactory.RegisterDirectory("/usr/share/fonts");