【问题标题】:Pechkin to Tuespechkin佩奇金到图斯佩奇金
【发布时间】:2015-06-14 19:04:47
【问题描述】:

对于一个项目,我们正在迁移到 Windows Azure。我必须确保 HTML 到 PDF 转换器将在 64 位工作角色上运行。

由于 Pechkin 不能作为 64 位应用程序运行,我决定使用 Tuesspechkin,因为它们应该非常相似,并且都使用 wkhtmltopdf 将 HTML 转换为 PDF。

现在,我已经完成了所有设置,但生成的 PDF 有点令人失望。

问题:

  1. 字体呈现不同。使用 Pechkin,字体总是“锐利”,而 tuespechkin 使它非常粗体。 结果在这里: http://postimg.org/image/xngqxryn1/

    • 我尝试使用不同的字体(甚至浏览器默认字体)。都呈现得很粗体
    • 我尝试使用不同的对象和全局设置(DPI、大纲、压缩、命名;它从来没有太大变化)。
  2. 所有内容都是可选择和可复制的。我希望它更像一个图像(这是 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);

任何问题的帮助将不胜感激!

【问题讨论】:

  • 这是 Azure 中的渲染问题吗?还是一直?
  • 嗨@Nicholas,这总是。我通过删除所有“@media”css 解决了第一个问题。

标签: pdf-generation wkhtmltopdf pechkin tuespechkin


【解决方案1】:

正如你所说,我无法解决问题。 但是可以将 IIS 设置为运行 32 位应用程序。 正如这张照片: http://i.stack.imgur.com/6l6Es.png

因此,您可以在 Azure 中运行 Pechkin。 你可以在这看到更多。 https://codeutil.wordpress.com/2013/09/16/convert-html-to-pdf/

【讨论】:

  • 虽然这在理论上可以回答问题,it would be preferable 在这里包含答案的基本部分,并提供链接以供参考。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-28
  • 1970-01-01
  • 2019-04-13
  • 2017-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多