Skip to content

Not reading/load docx file coming from office 365 #1974

@Tusharsharma144

Description

@Tusharsharma144

Describe the Bug

I am trying to convert a docx file into pdf which is working fine using other offices but if i use office 365 than it always returning with this bug "trying to get property 'length' of non-object"

Steps to Reproduce

$domPdfPath = base_path('vendor/mpdf/mpdf');
\PhpOffice\PhpWord\Settings::setPdfRendererPath($domPdfPath);
\PhpOffice\PhpWord\Settings::setPdfRendererName('MPDF');
$wordPdf = \PhpOffice\PhpWord\IOFactory::load(storage_path('abc.docx'));
$pdfWriter = \PhpOffice\PhpWord\IOFactory::createWriter($wordPdf , 'PDF');
$pdfWriter->save(storage_path('abc.pdf'));

I tried to debug it and looks like when Document.php read function calls $xmlReader->getElements('w:body/*') it is returning empty array on which next lines check for the length of the array any return the error.
i have tried with ms office2007 files and ms office2016 which is not returning empty array for the xmlchild but its only happening in office 365

Context

  • PHP Version: 7.4
  • PHPWord Version: 0.17.0

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions