【问题标题】:Converting a html file to pdf not working将html文件转换为pdf不起作用
【发布时间】:2021-08-12 00:36:02
【问题描述】:

我正在尝试将 html 文档转换为 pdf。 我尝试了多种工具,例如 iTextSharp、OpenHtmlToPdf 等。 但输出文件不包含 html 的文本。

输入文件:https://wetransfer.com/downloads/49dbb404cf25f36dc5d1cbcfe0e1491820210523120756/47bb00

输出文件:https://wetransfer.com/downloads/7e44ec94f42eb5a6bb9e4d2d986a820d20210523120732/0f3799 有人可以帮帮我吗?一周以来我一直在尝试这样做,但我还没有找到可行的解决方案。

我尝试过这样的事情:

using System.IO;
using System;
using NReco.PdfGenerator;

namespace test
{
    class te
    {
        static void Main(string[] args)
        {
            var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter();
            htmlToPdf.GeneratePdfFromFile(@"C:/Temp/input.html", null, @"C:/Temp/export.pdf");
        }
    }
}
using System.IO;
using System;
using OpenHtmlToPdf;

namespace test
{
    class te
    {
        static void Main(string[] args)
        {
            string html = File.ReadAllText(@"C:/Temp/input.html");
            var pdf = Pdf.From(html);
            byte[] content = pdf.Content();
            File.WriteAllBytes(@"C:/Temp/Test.pdf", content);
        }
    }
}

【问题讨论】:

  • 请分享您目前尝试过的代码。
  • @GK 我编辑了问题并添加了一些我尝试过的示例。我找不到超过两个,但其他的代码有点相似。
  • 不知道你是否愿意尝试其他工具来转换为PDF - stackoverflow.com/questions/564650/convert-html-to-pdf-in-net/…
  • 我无法访问您共享的文件,建议您将它们放在 google drive 的公共文件夹中或寻找其他文件托管。您是否尝试过捕获转换过程的异常?

标签: c# html pdf


【解决方案1】:

它本身不是一个可编程的跨平台解决方案。 然而,大多数浏览器都允许保存为 PDF,Edge 甚至可以编写脚本以无头打印到 MS Print as PDF。

如果需要一周时间,我不会寻找复杂的解决方案,只需使用/借用最近的 Win 10 PC,然后单击 Edge(基于 Chrome Sika 输出)中呈现的任何对象以另存为 PDF。

与转换器程序输出的数百个结果相比,结果是我见过的最好的。 但是,我必须承认,并非每个可视文本对象都是可选择的,如此处所示。那些不是,是嵌入在图像中的图形对象,例如 alpha 和 pi。

如果您希望自动执行任务,您可以使用包含结构的脚本,例如

我会为您节省样品所需的长字符串,但第一个

curl -o local.htm remote.html
RUNDLL32.EXE MSHTML.DLL,PrintHTML "local.htm"

允许您选择 PDF 驱动程序并调整手动输出,例如页面大小。

对于无人值守的批量使用,您可以指定首选的虚拟/网络打印机,例如在我的情况下为“我的 MSPDF 打印机”,对于过于复杂的示例,请参阅 https://www.robvanderwoude.com/printfiles.php

使用一行结果一样好

:: Actual print command
START RUNDLL32.EXE MSHTML.DLL,PrintHTML %File2Print% %Printer%

【讨论】:

  • 如果这是一个“如何将 HTML 转换为 PDF”的用户支持站点,我可以同意这种方法,但这是一个开发人员站点,预期的答案应该包含代码而不是涉及手动过程跨度>
  • 再次,这是一个开发者论坛,而不是“作为最终用户我该如何做”,有很多好的库不需要无头浏览器。无论如何,我没有比较它们,我只是提供其他方法。
猜你喜欢
  • 2023-02-26
  • 2023-03-27
  • 2018-02-15
  • 2018-06-03
  • 2013-07-10
  • 2019-04-06
  • 2012-02-11
相关资源
最近更新 更多