I have several PDF files in my hands and I would like to convert them into a DOCX file. I know how to convert a DOCX file to PDF. Now I would like to convert a PDF file to DOCX.
Here is the code I had used to convert DOCX to PDF.
<?php
require_once 'vendor/autoload.php';
use PhpOffice\PhpWord\IOFactory as WordIOFactory;
use PhpOffice\PhpWord\Settings;
// Set PDF renderer.
// Make sure you have `tecnickcom/tcpdf` in your composer dependencies.
Settings::setPdfRendererName(Settings::PDF_RENDERER_TCPDF);
// Path to directory with tcpdf.php file.
// Rigth now `TCPDF` writer is depreacted. Consider to use `DomPDF` or `MPDF` instead.
Settings::setPdfRendererPath('vendor/tecnickcom/tcpdf');
$phpWord = WordIOFactory::load('test/graph.docx', 'Word2007');
$phpWord->save('graph.pdf', 'PDF');
Can you help me to do this?
CodePudding user response:
you can use the below code:
<?php
require_once 'vendor/autoload.php';
// Create a new PDF reader
$reader = \PhpOffice\PhpWord\IOFactory::createReader('PDF');
$reader->setReadDataOnly(true);
// Load the PDF file
$phpWord = $reader->load('example.pdf');
// Save the DOCX file
$writer = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$writer->save('example.docx');
echo 'PDF file converted to DOCX successfully!';
Hope this will help
CodePudding user response:
The code you provided is used to convert a DOCX file to a PDF file using the PHPWord library and a PDF renderer (in this case, TCPDF). To convert a PDF file to a DOCX file, you will need to use a different library or tool that is capable of converting PDF to DOCX.
One popular library that can be used to convert PDF to DOCX is the pdftotext library. It is a command-line tool that can be used to convert a PDF file to a text file. Once you have the text file, you can then use PHPWord to create a new DOCX file and insert the text from the text file into it.
Here is an example of how you could use the pdftotext library to convert a PDF file to a DOCX file:
<?php
require_once 'vendor/autoload.php';
use PhpOffice\PhpWord\IOFactory as WordIOFactory;
// Convert PDF to text
exec('pdftotext -layout input.pdf output.txt');
// Load text file
$text = file_get_contents('output.txt');
// Create new DOCX file
$phpWord = new \PhpOffice\PhpWord\PhpWord();
$section = $phpWord->addSection();
$textrun = $section->addTextRun();
$textrun->addText($text);
// Save DOCX file
$objWriter = WordIOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('output.docx');
this is just an example, you might need to adjust the code to match your specific requirements.
or use an online converter service to convert your pdf file to docx
i hope this helps you