标签: pdf-generation

使用PHP将HTML转换为PDF(不是PDF格式的HTML)

我是一名PHP开发人员,在我的一个项目中,我需要将一些HTML文档(大约30到50页)转换为PDF文档.

我的搜索发现了以下可能的解决方案.其中包括一些PHP库和一些命令行应用程序.每个都有自己的优点和缺点.

PHP库:

  1. fpdf(需要更多努力才能转换)
  2. tcpdf(需要更多努力才能转换)
  3. html2fpdf http://html2fpdf.sourceforge.net
  4. html2pdf http://html2pdf.fr/
  5. dompdf http://code.google.com/p/dompdf/(与其他相比,效果很好)

对于每个图书馆,我遇到的问题包括:

  1. 花费很长时间(转换30个HTML页面超过五分钟)
  2. 需要太多资源(内存和时间)

    (我在php.ini中设置了以下参数:

    max_execution_time = 600
    memory_limit = 250M

    但事情仍然不起作用.)

  3. 需要HTML页面格式良好(例如,没有遗漏关闭标签)

当我尝试转换简单的HTML文档(五个或更少的页面,只有很少的CSS)时,所有这些工作都有效

命令行应用程序

与上述库相比,所有命令行应用程序都能完美而快速地工作,但只有当我直接在控制台上运行它们时.当我尝试PHP中使用它们exec()或者system(),他们给我的错误.

以下是我在PHP中运行它们时的命令行应用程序及其错误:

  1. html2pdf(http://www.tufat.com/s_html2ps_html2pdf.htm)

    html2pdf:11380):Gtk-WARNING**:无法打开显示:: 0.0
    没有指定协议

  2. wkhtmltopdf

    载入页面:10%
    载入页面:33%
    载入页面:100%
    等待重定向
    输出页面
    QPainter :: begin():返回false
    QPainter :: begin():返回false
    QPainter :: save:Painter not active
    QPainter :: scale :Painter不活动
    QPainter :: setRenderHint:Painter必须处于活动状态才能设置渲染提示
    QPainter :: setBrush:Painter not active
    QPainter :: pen:Painter not active
    QPainter :: setPen:Painter not active

  3. htmltopdf(http://www.ultrashareware.com/html-to-pdf.htm) …

html php pdf pdf-generation

26
推荐指数
1
解决办法
2万
查看次数

如何在PhantomJS中处理PDF分页

我正在使用PhantomJS从html创建PDF.

它工作正常,但我无法找到如何使用分页; 我想在文档中为每个div创建一个页面,但是我在文档中找不到任何内容.关于分页.

如果我的文档很短,它只会生成一个页面,如果它更大,它会创建一个第二个空页面,而我的内容在第一个页面中变得很长.

任何的想法 ?(我正在为nodeJS使用phantomJS节点模块)

pdf pdf-generation node.js phantomjs

26
推荐指数
1
解决办法
2万
查看次数

如何组合显示在同一页面上的两个PDF页面?

我正在寻找一个免费的工具,允许重新安排PDF文档的页面,并在每张纸上组合多个页面.第一部分(重新安排)很容易通过许多工具解决(我使用PyPDF).

问题在于第二个要求:将两个(或更多)页面组合​​成单个页面.例如,取两页(A和B),旋转它们,缩放并组合成这样的单个页面

------       ------            ------
|     |      |      |          |     |
|  A  |      |  B   |          | a   |
|     |      |      |          |     |
|     |      |      |  --->    ------
|     |      |      |          |     |        
|     |      |      |          | b   |        
|     |      |      |          |     |        
------       ------            ------
Run Code Online (Sandbox Code Playgroud)

该解决方案需要在Linux上运行,最好也在Windows上运行.我正在寻找使用Python或Perl绑定的控制台应用程序或库.

编辑有一个pdfnup库应该执行这种转换,并且是跨平台的,但由于类似于的错误,我无法使用它.

pdf pdf-generation

25
推荐指数
3
解决办法
8万
查看次数

如何从pdfLaTeX生成PDF索引?

我经常使用TeXworks从pdfLaTeX生成报告,并希望生成一个文档索引,该索引将出现在PDF查看器的侧边栏中(例如,evince,Adobe Reader).有没有可以让我这样做的套餐?

pdf latex pdf-generation pdflatex

25
推荐指数
1
解决办法
2万
查看次数

有什么直接的方法可以通过python从markdown文件生成pdf

作为标题,我想使用markdown作为我的主要写入格式,我需要使用纯python从markdown生成PDF文件.

python markdown pdf-generation

25
推荐指数
2
解决办法
2万
查看次数

如何使用纯ruby从mar​​kdown生成PDF

我目前正在使用Kramdown从Ruby中的Markdown生成HTML.我知道我可以使用kramdown生成一个latex文件,并将其转换为pdf美国命令行实用程序.但我想要一个纯粹的红宝石解决方案.

有没有办法在不使用命令行实用程序的情况下仅使用ruby将markdown转换为pdf?

ruby pdf markdown pdf-generation

25
推荐指数
2
解决办法
9511
查看次数

TCPDF UTF-8.立陶宛符号没有出现

我使用最新的TCPDF版本(5.9).但编码有一些奇怪的问题.我需要立陶宛语符号,如:ąčęėįšųūž.但只获得少数.其他仍然像????? 所以我该怎么做 ?我使用默认时间字体(它附带TCPDF下载).

任何帮助,将不胜感激.

php pdf pdf-generation utf-8 tcpdf

25
推荐指数
7
解决办法
5万
查看次数

将多个工作表保存为.pdf

我有一个报告电子表格,它从数据库中获取一些数据并形成三张摘要报告信息.我想从命令行自动运行电子表格,并让它自动将所有三个报告表格保存为PDF文件.

起初我以为我可以在工作表上有一个VBA宏,通过一系列"打印为PDF",但这需要一个中间交互式对话框来指定输出文件名.然后我发现我可以保存为pdf,宏可以设置输出文件名.然而,这会创建三个单独的文件,然后我必须在外部将它们放在一起以合并它们.

(奇怪的是,保存为pdf只保存一张,其他保存模式似乎可以保存整个工作簿.)

是的,有些工具可以在以后合并这三个文件,但是我想知道是否有一些简单的方法可以让Excel将多个工作表一起保存为一个pdf文件.

我现在打印一系列的东西,如:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, ...
Run Code Online (Sandbox Code Playgroud)

我可以做一个像(伪代码)的单一语句:

ThisWorkbook.Sheets(1,2,3,4).ExportAsFixedFormat Type:=xlTypePDF, ...
Run Code Online (Sandbox Code Playgroud)

pdf excel vba pdf-generation export-to-pdf

25
推荐指数
3
解决办法
12万
查看次数

如何以PDF格式呈现ASP.NET MVC视图

我正在使用ExpertPDF的Html-to-PDF转换实用程序来解决这个问题(尽管如果有足够的文档,我会对其他库开放).

简而言之,我有一个以特定方式格式化的视图,我想将其呈现为用户可以保存到磁盘的PDF文档.

我到目前为止是一个PrintService(它实现了一个IPrintService接口),这个实现有两个PrintToPDF()重载,一个只接受一个URL,另一个接受一个HTML字符串,两者都返回一个byte [].我只计算了需要HTML字符串的第二个重载的细节.

我想从我的控制器做的事情是这样的:

public FileStreamResult Print(int id)
{
    var model = _CustomRepository.Get(id);
    string renderedView = SomethingThatRendersMyViewAsAString(model);
    Stream byteStream = _PrintService.PrintToPdf(renderedView);
    HttpContext.Response.AddHeader("content-disposition", 
        "attachment; filename=report.pdf");
    return new FileStreamResult(byteStream, "application/pdf");  
}
Run Code Online (Sandbox Code Playgroud)

这在理论上会将PDF呈现给页面.这是我正在寻求帮助的"SomethingThatRendersMyViewAsAString".有没有快速的方法来获取视图的字符串表示?或许我应该坚持使用URL重载并将URL传递给视图......还有其他想法吗?

谢谢!

.net c# pdf asp.net-mvc pdf-generation

24
推荐指数
2
解决办法
6万
查看次数

DOMPDF的自定义字体

我正在使用DOM PDF 0.6.0 Beta 2.我想在PDF文件中使用自定义字体(字体:'Segeo Print','Lucida Handwriting','夜空中的飞机').

我按照指南在我的PHP代码中安装和使用字体,这里给出了http://code.google.com/p/dompdf/wiki/CPDFUnicode

但我无法在PDF中获得欲望字体.你可以在这篇文章中找到我的代码.请让我知道如何解决这个问题.

<?php     
    require_once("dompdf_config.inc.php");

   $html = "<html>
                <head>   
                    <meta http-equiv='Content-Type' content='text/html;charset=utf-8'>
                    <style>
                        *{font-size:15px;}  
                        div.ClJ{font: nightsky;}   
                    </style>      
                </head>
                <body>            
                   <div class='ClJ'>This text is in DIV Element</div><br /><br />
                </body>
          </html>";

    $dompdf = new DOMPDF();    
    $dompdf->load_html($html);
    $dompdf->render();
    $pdf = $dompdf->output();
    $dompdf->stream("dompdf_out.pdf", array("Attachment" => false));

?>    
Run Code Online (Sandbox Code Playgroud)

php pdf-generation dompdf custom-font

23
推荐指数
2
解决办法
4万
查看次数