简体   繁体   English

配置 apache + PDFlib + wordpress

[英]Config apache + PDFlib + wordpress

I'm having trouble installing PDFlib in my apache to use in my wordpress application.我在我的 apache 中安装 PDFlib 以在我的 wordpress 应用程序中使用时遇到问题。

I followed the tutorial PHP我跟着教程PHP

I still did the following command, because I thought in another doubt about the installation:我还是做了下面的命令,因为我又想到了关于安装的另一个疑问:

echo "katleia.com.br localhost" | sudo tee /etc/apache2/conf-available/fqdn.conf
sudo a2enconf fqdn

It is katleia.com.br/worpress the route I put on my browser to access my page.它是 katleia.com.br/worpress 我放在浏览器上访问我的页面的路线。

However when I give the command:但是,当我发出命令时:

service apache2 restart

It's the next exit with error:这是下一个错误退出:

 * Restarting web server apache2                                         [fail] 
 * The apache2 configtest failed.
Output of config test was:
AH00526: Syntax error on line 1 of /etc/apache2/conf-enabled/fqdn.conf:
Invalid command 'katleia.com.br', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.

Can someone help me configure PDFlib?有人可以帮我配置 PDFlib 吗? because I'm about four hours trying to make it work in wordpress and has nothing to right.因为我花了大约四个小时试图让它在 wordpress 中工作并且没有什么是正确的。

Already I leave on notice not want to install a wordpress plugin.我已经通知不想安装 wordpress 插件了。

UPDATE更新

To undo this command:要撤消此命令:

echo "katleia.com.br katleia" | sudo tee /etc/apache2/conf-available/fqdn.conf

UPDATE2更新2

I managed to make him stop giving error but still does not work.我设法让他停止给出错误,但仍然不起作用。

I did the following command in order to be able to restart the server:我执行了以下命令以便能够重新启动服务器:

echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/fqdn.conf
sudo a2enconf fqdn
service apache2 restart

with this my server returned to work, I added this code in a php file that is named after the click on a button to test:有了这个,我的服务器恢复了工作,我将此代码添加到了一个 php 文件中,该文件以单击按钮进行测试命名:

try{
    $pdf = new PDFlib();
} catch (Exception $e) {
  echo "error: ".$e->getMessage()."<br>";
} finally {
  // open a file 
    pdf_open_file($pdf, "test.pdf"); 
    // start a new page (A4) 
    pdf_begin_page($pdf, 595, 842); 
    // get and use a font object 
    $arial = pdf_findfont($pdf, "Arial", "host", 1); 
    pdf_setfont($pdf, $arial, 10); 
    // print text 
    pdf_show_xy($pdf, "There are more things in heaven and earth, Horatio,",50, 750); 
    pdf_show_xy($pdf, "than are dreamt of in your philosophy", 50,730); 
    // end page 
    pdf_end_page($pdf); 
    // close and save file 
    pdf_close($pdf);
}

He did not have any error, but when I try the file do not find anywhere.他没有任何错误,但是当我尝试该文件时找不到任何地方。

UPDATE3更新3

There is this command which in theory was to get an output showing that the PDFlib is running but it does not show anything when I do it on my prompt:有这个命令理论上是为了得到一个显示 PDFlib 正在运行的输出,但是当我在我的提示下执行它时它没有显示任何内容:

# php -i |grep PDF
PDFlib
PDFlib Support => enabled
PDFlib GmbH Binary-Version => 7.0.5p3

I could do this part to work was forgetting to add the extension = pdf.so the file /etc/php5/cli/php.ini .我可以做这部分工作是忘记添加extension = pdf.so文件/etc/php5/cli/php.ini After I restarted the apache and he gave the expected output.在我重新启动 apache 后,他给出了预期的输出。

But still it does not appear the test.pdf anywhere.但它仍然没有出现在任何地方的test.pdf

UPDATE4更新4

try {
    $p = new PDFlib();

    /*  open new PDF file; insert a file name to create the PDF on disk */
    if ($p->begin_document("", "") == 0) {
        die("Error: " . $p->get_errmsg());
    }

    $p->set_info("Creator", "hello.php");
    $p->set_info("Author", "Rainer Schaaf");
    $p->set_info("Title", "Hello world (PHP)!");

    $p->begin_page_ext(595, 842, "");

    $font = $p->load_font("Helvetica-Bold", "winansi", "");

    $p->setfont($font, 24.0);
    $p->set_text_pos(50, 700);
    $p->show("Hello world!");
    $p->continue_text("(says PHP)");
    $p->end_page_ext("");

    $p->end_document("");

    $buf = $p->get_buffer();
    $len = strlen($buf);

    header("Content-type: application/pdf");
    header("Content-Length: $len");
    header("Content-Disposition: inline; filename=teste_do_katleia.pdf");
    print $buf;
}
catch (PDFlibException $e) {
    die("PDFlib exception occurred in hello sample:\n" .
    "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " .
    $e->get_errmsg() . "\n");
}
catch (Exception $e) {
    die($e);
}

$p = 0;

$len = mb_strlen($buf, 'ASCII');
exit();

With the above code can generate a pdf and view it on the site, but that's not what I want.用上面的代码可以生成pdf并在网站上查看,但这不是我想要的。 What I want is to save it in a folder and then to recover on another page.我想要的是将它保存在一个文件夹中,然后在另一个页面上恢复。 Does anyone know what I have to change this code to be able to do this?有谁知道我必须更改此代码才能做到这一点?

With the above code can generate a pdf and view it on the site, but that's not what I want.用上面的代码可以生成pdf并在网站上查看,但这不是我想要的。 What I want is to save it in a folder我想要的是将它保存在一个文件夹中

you should check the comment in the line before the begin_document():您应该检查 begin_document() 之前行中的注释:

 /*  open new PDF file; insert a file name to create the PDF on disk */
if ($p->begin_document("", "") == 0) {

in addition you should check the the PDFlib 7 Tutorial, chapter 3.1.4 "Generating PDF Documents in Memory" for more details on this.此外,您应该查看PDFlib 7 教程,第 3.1.4 章“在内存中生成 PDF 文档”以获取更多详细信息。

Hint: when creating files on disc, you can not use get_buffer(), which get the the PDF data from memory.提示:在光盘上创建文件时,不能使用 get_buffer(),它从内存中获取 PDF 数据。 (Please consult the API reference, which is also included in your PDFlib 7 package within the doc directory) (请参阅 API 参考,该参考也包含在您的 PDFlib 7 包中的 doc 目录中)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM