Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用c语言从HTML转换为PDF#_C#_Html_Pdf_Xsl Fo - Fatal编程技术网

C# 用c语言从HTML转换为PDF#

C# 用c语言从HTML转换为PDF#,c#,html,pdf,xsl-fo,C#,Html,Pdf,Xsl Fo,我正在尝试创建一个应用程序,将文件从HTML格式转换为PDF格式 我采用的方法是: HTML到XHTML 格式化对象的XHTML 将对象格式化为PDF 我对整个XHTML到FO(或xsl)有点麻烦 您能告诉我如何将XHTML转换为FO吗 或者可能对整个HTML到PDF采用不同的方法 谢谢,Catalin您可以通过shell使用HTML到PDF转换器,很抱歉,我记不起我过去使用过的转换程序的名称,如果您有谷歌的话,你应该能找到一个好的。在我的个人stack应用程序项目中搜索了很多,最后找到了迄今为

我正在尝试创建一个应用程序,将文件从HTML格式转换为PDF格式

我采用的方法是:

  • HTML到XHTML
  • 格式化对象的XHTML
  • 将对象格式化为PDF
  • 我对整个XHTML到FO(或xsl)有点麻烦

    您能告诉我如何将XHTML转换为FO吗

    或者可能对整个HTML到PDF采用不同的方法


    谢谢,Catalin

    您可以通过shell使用HTML到PDF转换器,很抱歉,我记不起我过去使用过的转换程序的名称,如果您有谷歌的话,你应该能找到一个好的。在我的个人stack应用程序项目中搜索了很多,最后找到了迄今为止最好的免费HTML转换成PDF的工具。是的,我用它和c#-)

    我已经写了最简单的方法来编写html到pdf代码使用NRerco pdf库,可免费提供,安装nuget包

    PM>安装包NReco.PdfGenerator

       Create HtmltoPdf()
       {
       if (System.IO.File.Exists("HTMLFile.html"))
        {
            System.IO.File.Delete("HTMLFile.html");
        }
    
        System.IO.File.WriteAllText("HTMLFile.html", html);
        var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter();
        if (System.IO.File.Exists("export.pdf"))
        {
            System.IO.File.Delete("export.pdf");
        }
    
        htmlToPdf.GeneratePdfFromFile("HTMLFile.html", null, "export.pdf");
     }
    

    这里是不同的方法。我们将使用3d party工具直接将HTML/XML转换为PDF(它有多个首选项和转换设置,不需要任何外部库)

    1) 免费下载(很容易下载PDF SDK)

    2) 使用以下代码或运行操作中心自定义转换

    using BCL.easyPDF.Printer;
    
    namespace TestPrinter
    {
       class Program
       {
          static void Main(string[] args)
          {
             if(args.Length != 2)
                return;
    
             string inputFileName = args[0];
             string outputFileName = args[1];
             Printer printer = new Printer();
             try
             {
                IEPrintJob printjob = printer.IEPrintJob;
                printjob.PrintOut(inputFileName, outputFileName);
             }
             catch(PrinterException ex)
             {
                System.Console.WriteLine(ex.Message);
             }
             finally
             {
                printer.Dispose();
             }
          }
       }
    }
    

    我一定会买一款适合你的产品。这不是一项容易的任务。是的,这是一个程序。您可以使用shell命令从C语言运行它#