3

有沒有人成功地在FO.NET生成的PDF文件的元數據中顯示西裏爾字母?我想下面的代碼,但生成的PDF僅顯示的元數據「標題:??????」:PDF中的西裏爾字母由FO.NET創建的元數據

FonetDriver driver = FonetDriver.Make(); 

PdfRendererOptions options = new PdfRendererOptions(); 
options.FontType = FontType.Embed; 
options.Title = "Title: Услуги"; 
driver.Options = options; 

driver.Render("Input_cyrillic.fo", "Output.pdf"); 

回答

0

Here是鏈接到討論他們的論壇。這似乎是他們不支持Unicode都因MapCharacter方法有這個硬編碼:

ushort charIndex = CodePointMapping.GetMapping("WinAnsiEncoding").MapCharacter(c); 

這也似乎recent version有同樣的問題。

0

我不知道FO.NET的詳細信息,但是如果您使用十六進制FEFF(UTF字節順序)預先加上字符串,PDF中的「文本字符串」類型通常可以保存UTF-16數據(不是UTF-8!標記 - BOM)。 在PHP它看起來像這樣:

$pdfTitle = "\xfe\xff" . mb_convert_encoding($myTitleString, "UTF-16BE", "UTF-8"); 

這從UTF-8標題轉換爲UTF-16,並與BOM預先考慮它。

查看PDF文檔的細節:http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/PDF32000_2008.pdf
(第7.9.2.2: 「文本字符串類型」)