epub文件.zip (5.4 MB)
//转换代码如下 文件已经附上
转换后的pdf文件内容文字全部乱码
Aspose.HTML.dll
22.9.0.0
C#版本
var stream = File.OpenRead(“123.epub”);
PdfSaveOptions pdfOptions = new PdfSaveOptions();
Converter.ConvertEPUB(stream, pdfOptions, “123.pdf”);
转换后pdf文件截图如下:
image.png (59.3 KB)
@ywapple
我们在问题跟踪系统中将问题记录为 HTMLNET-4086。我们将进一步调查其详细信息,并随时向您发布其更正状态。请耐心等待,给我们一些时间。
对此造成的不便,我们表示歉意。
@ywapple
该文件也已附在调查单上。票证解决后,我们会通知您。
@ywapple
我检查了所提供文件的转换,它工作正常。我附上了其中一页的屏幕截图(converted.png)。您的计算机似乎没有转换这些文档所需的字体。您可以使用以下代码段设置自定义字体文件夹:
var stream = File.OpenRead("123.epub");
var config = new Configuration();
config.GetService<IUserAgentService>().FontsSettings.SetFontsLookupFolder("customFontFolder");
PdfSaveOptions pdfOptions = new PdfSaveOptions();
Converter.ConvertEPUB(stream, config, pdfOptions, "123.pdf");
converted.png (98.9 KB)
如果没有这些字体 我可以自己指定默认字体么?请问怎么做呢?
@ywapple
Aspose.HTML 不包含字体。默认情况下,程序集使用位于“windows/fonts”文件夹中的字体来绘制字符。如果此文件夹不包含包含所需符号的字体,则程序集将无法绘制它。您可以使用前面提供的代码片段指定不同的字体文件夹。或者,您可以使用以下代码片段来指定将使用哪些字体来绘制在“windows/fonts”文件夹中找不到合适字体的字符:
var stream = File.OpenRead("123.epub");
var config = new Configuration();
config.GetService<IUserAgentService>().FontsSettings.FontMatcher = new CustomFontMatcher();
PdfSaveOptions pdfOptions = new PdfSaveOptions();
Converter.ConvertEPUB(stream, config, pdfOptions, "123.pdf");
class CustomFontMatcher : FontMatcher
{
private readonly byte[] font;
public CustomFontMatcher()
{
font = File.ReadAllBytes("font.ttf");
}
public override byte[] MatchFontFallback(FontMatchingProperties fontMatchingProperties, uint charCode)
{
return font;
}
}
有一个疑问 我的epub打开浏览都是正常的,那应该是字体存在的把,
为什么转换就说没有字体呢?
@ywapple
EPUB 查看器可能对字体有不同的操作和处理机制。他们可以使用嵌入字体正确显示 EPUB 文件。但是,这取决于他们如何对待和选择使用嵌入其中的字体来显示它。 Aspose.HTML 在读取 EPUB 文件后有不同的查找字体的机制。它在本地系统中查找字体以使用它们并转换 EPUB 文档。
@ywapple
发生这种情况的原因有多种:
使用不在“windows/fonts”文件夹中的字体呈现文本。用于打开 epub 文档的程序可能有自己的内置字体,或者使用安装在操作系统其他地方的字体。
用于显示文本的字体是 Aspose.HTML for .NET 未知的格式。
我们需要更多信息来定位问题。
你使用什么操作系统,它是什么版本?
您使用什么程序打开 ePub 文档?
能否提供一段Aspose.HTML显示错误的文字,以及他用来打开ePab文档的程序如何显示这段文字的截图?