用现有PDF合并Print.Module的PrintPDF的输出 -- 6 领域 和 files 领域 和 printing 领域 drupal 相关 的问题

Merging output of Print.module's printpdf with existing PDFs


简体版||繁體版
1
vote

问题

中文

最近,我创建了一个输出模板对于打印模块,使得当其PDF功能解析某个内容类型时动态生成测量表(在这种情况下使用DOMPDF)。

一切都适用,但客户端的PDF的请求的文件附件字段,例如现有的PDF将添加到DomPDF的输出结束。例如,CAD绘图的PDF将附加在Drupal中,PrintPDF / $ NID生成我创建的模板,并且从文件上传字段给出的文件位置用于将文件与生成的PDF合并到这些位置。

dompdf显然无法合并pdf文档,所以我认为替代方法是生成PDF并将磁盘另存为某处,运行另一个PDF合并脚本,然后向用户呈现合并的输出。

如何通过以编程方式将Print.module的PDF生成器输出到服务器上的某个位置进行编程方式,然后在保存的输出上运行外部类?

(交替地,如果您知道DOMPDF阅读PDF的方式并将其附加到文档,那就更好地工作。)

英文原文

Recently, I created an output template for the Print module, such that it dynamically generates a measurement sheet when a certain content type is parsed by its PDF functionality (using dompdf in this case).

Everything works great, but the client's requested file attachment fields for PDFs, such that existing PDFs are added to the end of dompdf's output. For instance, a PDF of a CAD drawing would be attached in Drupal, printpdf/$nid generates the template I've created, and the file locations given from the file upload fields are used to merge the files at those locations with the generated PDF.

dompdf apparently cannot merge PDF documents, so I'm thinking a workaround would be to generate the PDF and save to disk somewhere, run another PDF merger script, then present the merged output to the user.

How would one go about programmatically saving the output of Print.module's PDF generator to somewhere on the server, then running an external class on that saved output?

(Alternately, if you know of a way for dompdf to read PDFs and append them to the document, that'd work even better.)

        

回答列表

0
 
vote
vote
最佳答案
 

i hacked print_pdf.pages.inc根据文件域的存在,在创建后合并PDF:

从第209行开始,在函数_print_pdf_dompdf()中;

  mybundle1  

写一个undefines print.module的私有_print_pdf_dompdf()的模块是很好的;函数并用自己替换它(所以我不是攻击填充模块);任何想法我怎么样?

 

I hacked print_pdf.pages.inc to merge PDFs after creation based on the existence of a filefield:

Starting at line 209, in function _print_pdf_dompdf();

    $node = $print['node'];      if ($node->field_pdf[0]) {         $meas_pdf = $dompdf->output();         file_put_contents($base_path . 'sites/default/files/pdf_temp.pdf', $meas_pdf);         include $base_path . 'sites/all/libraries/PDFMerger/PDFMerger.php';         $newpdf = new PDFMerger;         $newpdf->addPDF($base_path . 'sites/default/files/pdf_temp.pdf', 'all');             foreach ($node->field_pdf as $attach) {         $newpdf->addPDF($base_path . $attach['filepath'], 'all');         }         $newpdf->merge('download', 'measurements.pdf');     }     else {$dompdf->stream($filename, array('Attachment' => ($print_pdf_content_disposition == 2))); } } 

It'd be great to write a module that undefines Print.module's private _print_pdf_dompdf(); function and replaces it with my own (so I'm not hacking a contrib module); any idea how I'd go about that?

 
 

相关问题

0  旁路自定义模块中的权限  ( Bypass permissions in custom module ) 
我已经写了一个自定义模块,当提交WebForm并将其邮寄给管理员时,会生成PDF。我正在使用打印模块来生成pdf。问题是,在生成PDF时似乎使用用户的权限,而不是管理员。这通常可以用于经过身份验证的用户,但对于访客来说,它只是完全失败。 我已启用"访问PDF版本" 和"访问自己的WebForm提交" 的所有用户(匿名...

2  打印模块的默认设置很烦人  ( Print modules default setting is annoying ) 
我们经常使用打印模块创建节点的PDF;大多数时候,它都在盒子外。 然而,为了我们的要求,让我非常生气的一件事是其默认设置。 安装打印模块时,即使仅适用于一些内容类型,也可以启用"打印友好页" 选项。每次我必须通过编辑单个内容类型编辑选项卡格式手动禁用它。 是否有全局选项,我可以用来禁用所有内容类型的选项,并为我真...

0  使用DSM输入对象  ( Enter object with dsm ) 
我正在实际地尝试在我的镶板节点中读取字段值。 我想收到红色标记字段中的数据,因为你可以在我的屏幕截图中看到。 我试图关注: <?php print_r($display->context['panelizer']['data']['field_centerpage_layout'][0]['value'])...

0  使用PRINT PDF生成PDF并发送电子邮件  ( Generate pdf with print pdf and send in email ) 
当用户寄存器时,他必须选择一些选项,该选项将定义为之后创建的发票。 我有一个规则,将在保存用户帐户时执行。这就是我所做的: 规则1:创建发票(发票=内容类型)并保存发票 规则2:填写发票 用户在用户注册帐户时生成发票。当我去这样的发票时: http://domain.com/node/147294 我看...

1  HTML标签未通过打印模块和HTML邮件[关闭]  ( Html tags not filtered with print module and html mail ) 
关闭。这个问题需要详细信息或清晰度。它目前不接受答案。 想要改进这个问题?添加详细信息并通过编辑此帖的问题。 关闭 4年前。 ...

0  print.module错误 - 警告:file_put_contents  ( Print module error warning file put contents ) 
我正在使用print.module和dompdf来转换pdf文件。我在页面上收到以下警告。我怎么解决这个问题? 警告: file_put_contents(/home/mysite/public_html/sites/all/modules/print/lib/dompdf/lib/fonts/php_time...

6  将基于表的表单复制为PDF视图输出?  ( Replicating an existing table based form as pdf views output ) 
Drupal 6项目我正在努力涉及具有一堆不同元素的自定义内容类型。我需要复制现有形式 - 请参阅屏幕截图。 最终,我需要将存储在附加到此内容类型的CCK字段中的数据,并根据屏幕截图重建它们作为表。然后需要可节省为pdf。 似乎有两种方法可以做我想要的自然的pdf内容: PDF - Cumberso...

0  为页面视图创建打印TPL  ( Create a print tpl for page views ) 
我使用print,我会为特定视图创建一个tpl(用于"页面" 显示)。 是可以使用命名的条目吗? ...

1  在打印页面[关闭]后,链接后删除添加的URL  ( Remove added urls after link when printing a page ) 
关闭。这个问题需要详细信息或清晰度。它目前不接受答案。 想要改进这个问题?添加详细信息并阐明编辑此帖的问题。 关闭 4年前。 ...

0  节点页面上的“PDF版本”的链接不会出现在Chrome中  ( The link of pdf version on node page does not appear in chrome ) 
我已在Drupal 7站点上安装了打印模块。我配置了打印模块PDF设置。 现在,链接"PDF版本" 在底部的内容区域上显示每个节点。当我点击链接时,它将节点以PDF格式保存。 但这只能在Firefox中使用。在Chrome中,"PDF版" 链接在未显示。 问题是什么? ...




© 2022 it.wenda123.org All Rights Reserved. 问答之家 版权所有