saveAs('test.docx');"; finally convert "test.docx" into "test.pdf" That’s it."/> saveAs('test.docx');"; finally convert "test.docx" into "test.pdf" That’s it.">

Home  >  Article  >  Backend Development  >  How to convert doc to pdf in php

How to convert doc to pdf in php

藏色散人
藏色散人Original
2020-09-02 10:01:494600browse

How to convert doc to pdf in php: first introduce the autoload file; then load the template word file through "$templateProcessor->saveAs('test.docx');"; finally, add "test.docx" Just convert it into "test.pdf".

How to convert doc to pdf in php

Recommended: "PHP Video Tutorial"

php edit PDF files, php word to PDF, php edit word , phpoffice, phpword, libreoffice

No more nonsense, just talk about the requirements

1. Project manager: "Xiao Jiang, I have a contract here in word format. You can generate it PDF format, and the content inside can be edited."

General idea

1. I was a little shocked when I encountered this kind of demand. What kind of demand is this? I have never encountered it before. Then Google, Baidu, etc. have a lot of things to recommend. I have also looked at several PHP third-party libraries that generate PDFs regularly.

There are tcpdf, zend framework, fpdf, etc. tcpdf generates pdf. To be more direct, the content of the document must be written in html and css. If you want to use this without vomiting blood, there is a pdf generated under zend framework. Class library, but it has a fatal flaw, it does not support Chinese, Chinese will be garbled, and the same is true for fpdf. I tried them all, but nothing worked. I felt like I was going to be killed by this thing. When I was about to give up, I saw phpword and saw hope. phpword supports editing word documents, but converting to pdf is not his forte. Good food, but I had no choice but to download a libreoffice converter, and then I barely fulfilled this requirement. Alas, I find it very difficult, so I must share it. If there is a better way, please comment below:

1. Directly introduce the autoload file

require_once ’ vendor/phpoffice/phpword/bootstrap.php’;

2,

       $templateProcessor = new      \PhpOffice\PhpWord\TemplateProcessor('layout.docx');
       $templateProcessor->setValue('name', 'AAAAAAA');
       $templateProcessor->setValue('ID_card', '36042819950812782112');
       $templateProcessor->setValue('mobile', '12312341234');
       $templateProcessor->setValue('adress', '广东省深圳市宝安区西乡');
       $templateProcessor->saveAs('test.docx');

Description of the above code: Load the word file of our template, and we set the variable format in it to ${name} and so on. , the generated test.docx assigns the value of setValue to the variable, isn’t it amazing?

3. Finally, convert test.docx into test.pdf. This step is also very sad. After checking a lot of information, I always thought that there is a third-party library that can solve the problem, but I still haven’t found it. Libreoffice is An open source software, this is a big thing, nearly 1G in size. The usage is introduced below:

system(“export HOME=/tmp/ && libreoffice --invisible --convert-to pdf --outdir /phpstudy/www/Uploads/activity/2017-02-28/ /phpstudy/www/Uploads/activity/2017-02-28/58b53f9cad22e.xls 2>&1”);

Use the system system function directly

This article will introduce it here. Friends who have questions are welcome to comment below.

The above is the detailed content of How to convert doc to pdf in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn