HTML到PDF的转换在服务器端?

问题描述 投票:4回答:7

我们正在创建使用包princexml PDF转换的HTML文件的PDF文件。 HTML文件的创建数据已经由服务器提供。在使用jquery输入串(HTML代码)浏览器是为PDF创建创建。从浏览器接收输入字符串后,服务器将创建一个html文件,这是输入princexml PDF转换为PDF创建。

Example for the input string
var sample = "<html>text</html>";//browser side
sample.html converted to sample.pdf //server side 

是否有可能做在服务器端同样的事情,没有浏览器的帮助?

jquery html5 princexml
7个回答
3
投票

您可以使用模拟浏览器像http://phantomjs.org/。这允许生成渲染的页面图像。参见http://www.lelesys.com/en/media/technology/phantomjs-as-screen-capture-to-generate-image-pdf-files.html

这使您可以使用jQuery和其他一切 - 因为它使用了实际的渲染引擎。我猜你甚至不需要princexml然后。还有关于捕获常见问题解答页面:qazxsw POI


2
投票

退房http://phantomjs.org/screen-capture.html - 使用的Webkit HTML转换为PDF(QtWebKit的)@ wkhtmltopdf


2
投票

我知道这是一个有点老问题,但因为我发现了一个伟大的模块我想和大家一起分享。

模块命名http://wkhtmltopdf.org,可以让你在无头的模式下运行的Chrome,并通过API与之交互。所以,现在你可以创建一个模板,并通过POST调用采取模板的占位符的值,并动态生成的PDF,在服务器上。

我创建了一个小的POC这里是链接到它:Puppeteer

让我做了一下解释一下:

Demo-Puppeteer

现在,这个缓冲区基本上是一个二进制数据,你必须使用节点的文件模块把它写在文件中。

为了进一步的说明请查看 ........... const content = await compile(templateName, data); /*** * Launched the headless chrome in memory. */ const browser = await puppeteer.launch(); /*** * Created a new page(tab) */ const page = await browser.newPage(); /*** * Set the content of the new page */ await page.setContent(content, { waitUntil: 'networkidle0' }); /*** * Telling chrome to emulate screen i.e how the page looks if * it would have been rendered in the normal browser. */ await page.emulateMedia('screen'); const byteArray = await page.pdf({ format: "A4", landscape: true, scale: 1.29, printBackground: true }); const buffer = Buffer.from(byteArray, 'binary'); /** * We don't need the acknowledgement of this call that is the * reason we are not waiting for this call to return. */ browser.close(); return buffer; .......


1
投票

你可以用下面的库中的任何一个的帮助下实现这一目标?

Exlpanation Link - FPDF是一个PHP类,允许生成纯PHP的PDF文件,也​​就是不使用的PDFlib库说。 f起FPDF代表免费:您可以将其用于任何一种用法,并对其进行修改以满足您的需求。

FPDF - HTML2PDF是一个HTML写在PHP4(利用FPDF),和PHP5(使用TCPDF)PDF转换器。它可以有效的HTML 4.01的PDF格式的转换,LGPL下分发。

HTML2PDF - DOMPDF是一个HTML到PDF转换器。在它的心脏,DOMPDF是(主要)CSS 2.1标准的HTML布局和用PHP编写的渲染引擎。这是一个风格的驱动渲染器:它会下载并阅读外部样式表,内嵌式的标签,和个人的HTML元素的样式属性。它还支持最表象的HTML属性。

GIT位置:dompdf

https://github.com/dompdf/dompdf - 该Pdfcrowd API是一个在线工具,可以让你轻松转换网页和原始的HTML代码,PDF在您的PHP应用程序。 PDF文件在云中生成的,不需要第三方库。所有你需要的是一个很小的PHP API客户端库。


1
投票

您可以拨打princexml服务器端是这样的:

pdfcrowd

看到prince sample.html -o sample.pdf


1
投票

你可以做到这一点,而不使用浏览器。您目前使用jQuery生成HTML内容,所以你需要在浏览器因为jQuery在浏览器中运行,对不对?

您可以通过编写产生所需的HTML内容,并将其发送到PDF转换器的服务器端应用程序移动HTML代码到服务器端的生成。

Princexml可以从许多服务器端编程语言被称为你可以在这里看到:command-line documentation

从列表中选择一个服务器端语言,生成该语言的HTML和发送HTML到PDF转换器。就这样。


0
投票

此处是指文档http://www.princexml.com/doc/9.0/你可以选择你的服务器端语言和得到的东西完成。只是做一个表格并提交该数据。

© www.soinside.com 2019 - 2024. All rights reserved.