【发布时间】:2016-08-04 15:47:32
【问题描述】:
我目前在使用 PdfSharp/MigraDoc 和 pdf 查看器时遇到问题。我使用EZFontResolver made by Thomas 能够生成带有自定义字体的pdf。不幸的是,pdf 查看器无法呈现字体,我不知道为什么。我在 Thomas 的博客上看到了一个错误 described by Travis,它指出,如果 EZFontResolver 没有多个粗体/斜体符号识别(例如“fontname|b|b”),那么 PdfDocumentRenderer.RenderDocument() 失败。关键是,当我尝试这样的事情时:
Document document = DdlReader.DocumentFromString(ddl);
_renderer = new DocumentRenderer(document);
_renderer.PrepareDocument();
比 EZFontResolver 被要求提供名称为“customfont|b|b”的字体(当我仅使用 PdfDocument.Save(...) 时不会发生这种情况)而不是“自定义字体”。
我的 pdf 查看器覆盖 DocumentViewer 并查看 FixedDocument 类实例。有趣的是,保存的 pdf 文件设置了所有字体,但预览无法做到这一点(这是我的大问题)。即使我使用解析器返回正确的字体,所有这些都会发生。
编辑:
ddl 是一个字符串,看起来像这样:
"\\document
[
Info
{
Title = \"My file\"
Subject = \"My pdf file\"
Author = \"mikes\"
}
]
{
\\styles
{
Heading1 : Normal
{
Font
{
Name = \"My custom font\"
Bold = true
}
ParagraphFormat
{
Alignment = Center
SpaceBefore = \"0.5cm\"
SpaceAfter = \"0.5cm\"
}
}
header : Normal
{
Font
{
Name = \"My custom font\"
Size = 6
}
ParagraphFormat
{
Alignment = Center
}
}
而当我删除 Travis 的 bug 修复时,_renderer.PrepareDocument() 中抛出异常(修复后,堆栈跟踪显示多个“|b”的来源也是离开那里)。
【问题讨论】:
标签: c# wpf pdf pdfsharp migradoc