【问题标题】:Generating temporary PDF via .exe or .NET from PHP通过 .exe 或 .NET 从 PHP 生成临时 PDF
【发布时间】:2013-06-09 18:50:44
【问题描述】:

总之...

我有一个 ASP.NET 脚本,它根据传递给它的参数生成 PDF。首先,我需要能够从 PHP 调用这个脚本,其次,我需要确保文件一旦发送到浏览器就不会被存储。

调用脚本

所以我的第一个问题是,如何从 PHP 执行需要 DLL's.NET 应用程序?我读过一些关于 PHP 的Component Object Model,但我有点不确定这是什么以及它是如何工作的(我已经读过here)。或者,将这个脚本编译成.exe 并通过它调用会更好吗?

另外,通过 PHP 调用 .exe 时是否可以传递参数?

发送文件而不存储文件

生成文件后(通过.NET.exe),我想将其发送到浏览器而不将其存储在服务器上。我查看了以下主题:

  1. Creating A Temporary File in Php
  2. Create temporary file and auto removed

上述主题可能包含正确答案,但我不确定是否可以使用这些方法发送 PDF...

结束

我想写一个实现以下功能的脚本:

  1. 使用参数调用脚本(.NET 应用程序或 .exe)!
  2. 将生成的内容(PDF)输出到浏览器而不将其存储在服务器上

我没有要求任何人为我编写这个脚本,我只是想要一些指针让我自己编写这个:-)

没有必要将这些 PDF 存储在服务器上,因为它们很少会相同

【问题讨论】:

    标签: php .net com pdf-generation temporary-files


    【解决方案1】:

    回答您的问题....

    =>。 所以我的第一个问题是,如何执行需要 PHP 中的 DLL 的 .NET 应用程序?

    当然,您必须创建一个 COM 对象才能与之交互。在您编写的同一页面中,有一个示例,例如 this 用于打开 com 对象以进行单词交互....

    <?php
    // starting word
    $word = new COM("word.application") or die("Unable to instantiate Word");
    echo "Loaded Word, version {$word->Version}\n";
    
    //bring it to front
    $word->Visible = 1;
    
    //open an empty document
    $word->Documents->Add();
    
    //do some weird stuff
    $word->Selection->TypeText("This is a test...");
    $word->Documents[1]->SaveAs("Useless test.doc");
    
    //closing word
    $word->Quit();
    
    //free the object
    $word = null;
    ?>
    

    => 调用带有参数的脚本(.NET 应用程序或 .exe)!

    您必须在可访问的路由中拥有 php 的 cli,才能像带参数的控制台一样调用它。你将把它们放在 PHP 的 argv 数组中。

    => 将生成的内容(PDF)输出到浏览器而不将其存储在服务器上

    将正确的标题发送到浏览器类型:application/pdf,它将打开您描述的内容。赞这个one

    代码:

        <?php
    $file='/files/the.pdf';
    header('Content-type: application/pdf');
    header('Content-Disposition: inline; filename="the.pdf"');
    @readfile($file);
    ?>
    

    嗯,你明白了...... :)

    【讨论】:

    • 听起来很有希望,我会试一试,然后再找你。同时,如何运行 .NET 脚本而不是按照您的建议加载特定应用程序?
    • 已编辑...希望这能让您初步了解解决方案。
    • 太棒了,会玩一玩然后回来找你。感谢您一直以来的帮助。 +1 :-)
    猜你喜欢
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 2012-04-14
    • 2015-01-03
    • 2011-12-31
    • 1970-01-01
    相关资源
    最近更新 更多