对于一个项目,我们正在迁移到 Windows Azure。我必须确保 HTML 到 PDF 转换器将在 64 位工作角色上运行。
由于 Pechkin 不能作为 64 位应用程序运行,我决定使用 Tuesspechkin,因为它们应该非常相似并且都使用 wkhtmltopdf 将 HTML 转换为 PDF。
现在,我把这一切都设置好了,但生成的 PDF 有点令人失望。
问题:
字体呈现不同。使用 Pechkin,字体总是“锐利”,而 tuespechkin 使它非常粗体。结果在这里: http: //postimg.org/image/xngqxryn1/
- 我尝试使用不同的字体(甚至是浏览器默认字体)。都渲染得很粗
- 我尝试使用不同的对象和全局设置(DPI、大纲、压缩、命名;它从来没有太大变化)。
所有内容都是可选择和可复制的。我希望它更像一个图像(这是 pechkin 的默认设置)。对此的任何建议将不胜感激。
这是我用来将 HTML 转换为 PDF 的代码:
老佩奇金:
var documentConfig = new ObjectConfig()
.SetAllowLocalContent(true)
.SetLoadImages(true)
.SetRunJavascript(true)
.SetPrintBackground(true)
.SetRenderDelay(15000);
var globalConfig = new GlobalConfig()
.SetMargins(new Margins(50, 50, 100, 100))
.SetDocumentTitle(company.Name)
.SetPaperSize(PaperKind.A4);
var pechkin = new SynchronizedPechkin(globalConfig);
var buffer = pechkin.Convert(documentConfig, parsedHtml);
图斯佩奇金:
var converter = new ThreadSafeConverter(
//new ImageToolset(
new PdfToolset(
new Win64EmbeddedDeployment(
new TempFolderDeployment()
)
)
);
var documentConfig = new ObjectSettings {
WebSettings = new WebSettings {
EnableJavascript = true,
PrintBackground = true,
PrintMediaType = true
},
LoadSettings = new LoadSettings {
BlockLocalFileAccess = false,
RenderDelay = 15000,
},
HtmlText = parsedHtml
};
var globalConfig = new GlobalSettings();
globalConfig.Margins = new MarginSettings(2.645833333333, 1.322916666667, 2.645833333333, 1.322916666667);
globalConfig.Margins.Unit = Unit.Centimeters;
globalConfig.DocumentTitle = company.Name;
globalConfig.PaperSize = PaperKind.A4;
globalConfig.UseCompression = false;
globalConfig.DPI = 1200;
var doc = new HtmlToPdfDocument {
Objects = {
documentConfig
},
GlobalSettings = globalConfig
};
var buffer = converter.Convert(doc);
任何问题上的任何帮助将不胜感激!