Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
Javascript JS AJAX将生成的文件以PDF格式发布到服务器目录_Javascript_Ajax_Pdf - Fatal编程技术网

Javascript JS AJAX将生成的文件以PDF格式发布到服务器目录

Javascript JS AJAX将生成的文件以PDF格式发布到服务器目录,javascript,ajax,pdf,Javascript,Ajax,Pdf,我有一个通过javascript生成的复杂表,我想在服务器上保存为PDF。我环顾了一下pdf生成库,它们似乎都在样式、字体等方面受到限制(这就是我所说的“复杂”的意思)。该表可以在客户端下载为PDF或打印 假设我生成要打印的表单的函数是reportBody(data)-是否有一种方法可以使用AJAX将文档以PDF格式发送到php文件,该文件将在服务器端保存而不是在客户端下载?reportBody(data)是其他变量、函数调用等的集合 所以基本上问题是——既然我们可以在客户端生成PDF文件,我们

我有一个通过javascript生成的复杂表,我想在服务器上保存为PDF。我环顾了一下pdf生成库,它们似乎都在样式、字体等方面受到限制(这就是我所说的“复杂”的意思)。该表可以在客户端下载为PDF或打印

假设我生成要打印的表单的函数是
reportBody(data)-是否有一种方法可以使用
AJAX
将文档以PDF格式发送到php文件,该文件将在服务器端保存而不是在客户端下载?
reportBody(data)
是其他变量、函数调用等的集合


所以基本上问题是——既然我们可以在客户端生成PDF文件,我们可以通过ajax将其(PDF)发布到服务器吗?

是的,有很多方法。一种是,如果报告体(数据)中有html代码;你可以:

  • 通过ajax将html发送到php文件
  • 在这个php中,您可以使用它生成一个pdf文件
  • 在客户端,您可以指向生成的pdf

  • 是的,有很多方法。一种是,如果报告体(数据)中有html代码;你可以:

    • 通过ajax将html发送到php文件
    • 在这个php中,您可以使用它生成一个pdf文件
    • 在客户端,您可以指向生成的pdf

      • 简短的回答是肯定的。您提供的信息仍然有限,因为不清楚在
        reporBody(data)
        中运行的是什么,但客户端的大多数PDF库都能够以字符串形式将PDF文件作为base64编码数据提供给您。 然后,您只需将该字符串发送到服务器,并将其保存为PDF文件。 一个简单的实现如下所示:

        // I have used jQuery for convenience but you can use any lib or Vanilla JS         
        var saveData = $.ajax({
                  type: 'POST',
                  url: "url-to-the-php-script",
                  data: { pdfData: 'base64StringDataHere'},
                  dataType: "JSON",
                  success: function(resultData) { alert("Save Complete") }
            });
        
        $pdfData= $_POST['pdfData'];    
        file_put_contents('filename.pdf', base64_decode($pdfData));
        
        然后在服务器端,执行如下操作:

        // I have used jQuery for convenience but you can use any lib or Vanilla JS         
        var saveData = $.ajax({
                  type: 'POST',
                  url: "url-to-the-php-script",
                  data: { pdfData: 'base64StringDataHere'},
                  dataType: "JSON",
                  success: function(resultData) { alert("Save Complete") }
            });
        
        $pdfData= $_POST['pdfData'];    
        file_put_contents('filename.pdf', base64_decode($pdfData));
        

        简而言之,答案是肯定的。您提供的信息仍然有限,因为不清楚在
        reporBody(data)
        中运行的是什么,但客户端的大多数PDF库都能够以字符串形式将PDF文件作为base64编码数据提供给您。 然后,您只需将该字符串发送到服务器,并将其保存为PDF文件。 一个简单的实现如下所示:

        // I have used jQuery for convenience but you can use any lib or Vanilla JS         
        var saveData = $.ajax({
                  type: 'POST',
                  url: "url-to-the-php-script",
                  data: { pdfData: 'base64StringDataHere'},
                  dataType: "JSON",
                  success: function(resultData) { alert("Save Complete") }
            });
        
        $pdfData= $_POST['pdfData'];    
        file_put_contents('filename.pdf', base64_decode($pdfData));
        
        然后在服务器端,执行如下操作:

        // I have used jQuery for convenience but you can use any lib or Vanilla JS         
        var saveData = $.ajax({
                  type: 'POST',
                  url: "url-to-the-php-script",
                  data: { pdfData: 'base64StringDataHere'},
                  dataType: "JSON",
                  success: function(resultData) { alert("Save Complete") }
            });
        
        $pdfData= $_POST['pdfData'];    
        file_put_contents('filename.pdf', base64_decode($pdfData));
        

        你还不明白什么?您是否在询问是否可以向服务器发送字节?您是在问服务器端代码是否可以保存文件?我是在问是否可以通过ajax将生成的文件以PDF格式发布到服务器。您可以通过ajax发布数据,而不管它是PDF还是其他格式。你不明白什么?我知道你可以通过ajax发布数据-我想知道如何发布已经是PDF或PDF格式的数据,以避免在后端进行转换-从而避免使用php PDF库。也许你从来都不明白这个问题。你不明白什么?您是否在询问是否可以向服务器发送字节?您是在问服务器端代码是否可以保存文件?我是在问是否可以通过ajax将生成的文件以PDF格式发布到服务器。您可以通过ajax发布数据,而不管它是PDF还是其他格式。你不明白什么?我知道你可以通过ajax发布数据-我想知道如何发布已经是PDF或PDF格式的数据,以避免在后端进行转换-从而避免使用php PDF库。也许您从未理解过这个问题。
        reportBody(data)
        纯粹是js变量、对象和函数-在运行时调用并生成formOk,然后您需要将这些信息转换为html。您可以传递此信息并在作为wkhtmltopdf参数的html中构建html,因为该scritp执行javascritp,或者您可以在客户端构建html并将其作为php脚本中的参数传递,以生成html文件,该文件将作为wkhtmltopdf的参数。wkhtmltopdf的工作原理与wkhtmltopdf google.pdf类似
        reportBody(data)
        纯粹是js变量、对象和函数-在运行时调用并生成formOk,然后需要将该信息转换为html。您可以传递此信息并在作为wkhtmltopdf参数的html中构建html,因为该scritp执行javascritp,或者您可以在客户端构建html并将其作为php脚本中的参数传递,以生成html文件,该文件将作为wkhtmltopdf的参数。wkhtmltopdf的工作原理与wkhtmltopdf google.pdfThanks类似,这种解决方案似乎很有前途。
        reportBody(data)
        基本上更多的是js变量、对象和函数调用。我以前为图像实现过这一点——我从未想过我也可以拥有base64字符串PDF。我肯定会实现这一点。您可以通过base64对几乎任何文件/数据进行编码/解码。祝你好运谢谢,这个解决方案看起来很有希望。
        reportBody(data)
        基本上更多的是js变量、对象和函数调用。我以前为图像实现过这一点——我从未想过我也可以拥有base64字符串PDF。我肯定会实现这一点。您可以通过base64对几乎任何文件/数据进行编码/解码。祝你好运