Aspose.Words_for_NET.24.5.0
环境 .Net 6.0
Visual Studio Code 控制台运行。
实测 Word 转换 ePub 后, 存在以下问题:
ePub目录 缺失:
Aspose.Words 似乎只能根据Word的“样式标题”创建目录,但是很多情况下,Word的目录节点并非全部符合标准的“标题样式”。例如 所提供的样例文件:Word中可以正常显示的目录节点,转换的ePub目录却丢失了(如附图)。
Word 目录区域 具有更好的辨识度和操作性,个人觉得,转换应该基于这个“目录”,而不是“样式标题”。
这只是我的猜测。也可能是我操作不对?还请指教。
ePub目录丢失.png (55.7 KB)
中文字符乱码:
ePub文件内部有2个重要文件:.opf、.ncx,一些主流的相关工具通常将其固定命名为 content.opf、toc.ncx。如果Word文件名是全中文的,Aspose.Words 转换后的 ePub文件,会导致这2个文件名乱码。
如果引用了外部字库,且字库文件名是中文,ePub内的字库文件名也会乱码。(如附图)。
这几个文件名乱码,可能会导致很多无法预料的问题。
ePub内部文件名乱码.png (24.3 KB)
相关代码:
var FontDir =@"fonts\";
FontSettings fontSettings = new FontSettings();
List<FontSourceBase> fontSources = new List<FontSourceBase>(fontSettings.GetFontsSources());
FolderFontSource folderFontSource = new FolderFontSource(FontDir, true);
fontSources.Add(folderFontSource);
FontSourceBase[] updatedFontSources = fontSources.ToArray();
fontSettings.SetFontsSources(updatedFontSources);
Document doc = new Document(sourceFile);
doc.FontSettings = fontSettings;
HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.SaveFormat = SaveFormat.Epub;
saveOptions.Encoding = Encoding.UTF8;
saveOptions.NavigationMapLevel = 9;
saveOptions.ExportFontResources = true;
doc.Save(DestFile, saveOptions);
附件提供:
Word文件、字体文件及转换后的ePub文件。
麻烦看下问题出在哪里?也请提供修改后的代码。
测试用文件.zip (2.0 MB)