Original DOCX:
https://www.topport.it/media/8b897b82-89f5-48e3-8f9e-3d0bce905d93/ArticoloClelia.docx
My code:
$docxFinal = new CreateDocx();
$docxFinal->importContents('ArticoloClelia.docx', ['type' => 'paragraph']);
$docxFinal->embedFont('fonts/Roboto/roboto.ttf', 'Roboto');
$docxFinal->embedFont('fonts/Roboto/robotoi.ttf', 'Roboto', ['styleEmbeding' => 'Italic']);
$docxFinal->embedFont('fonts/Roboto/robotob.ttf', 'Roboto', ['styleEmbeding' => 'Bold']);
$docxFinal->embedFont('fonts/Roboto/robotobi.ttf', 'Roboto', ['styleEmbeding' => 'BoldItalic']);
$docxFinal->setDefaultFont('Roboto');
$defaultStyle = [
'color' => '000000',
'italic' => false,
'bold' => false,
'font' => 'Roboto',
'fontSize' => (12 * 2),
'textAlign' => 'both',
'lineSpacing' => 360
];
$docxFinal->setDocumentDefaultStyles($defaultStyle);
$docxFinal->customizeWordContent(
[ 'type' => 'style', 'target' => 'style', 'customAttribute' => '//w:body/w:r[1=1 and descendant::w:rFonts[contains(@w:ascii, "*")]]' ],
[
'color' => 'FF0000',
'bold' => false,
'italic' => false,
'font' => 'Roboto',
'fontSize' => 12,
'lineSpacing' => 360,
'spacingTop' => 90,
'textAlign' => 'both'
]
);
$docxFinal->customizeWordContent(
[ 'type' => 'style', 'target' => 'style', 'attributes' => ['w:*' => ['w:val' => 'ContenutoArticolo']] ],
[
'color' => '000000',
'bold' => false,
'italic' => false,
'font' => 'Roboto',
'fontSize' => 12,
'lineSpacing' => 360,
'spacingTop' => 90,
'textAlign' => 'both'
]
);
$docxFinal->customizeWordContent(
[ 'type' => 'style', 'target' => 'style', 'attributes' => ['w:*' => ['w:val' => 'TitoloCapitolo']] ],
[
'bold' => true,
'italic' => false,
'color' => '000000',
'font' => 'Roboto',
'fontSize'=> 14,
'lineSpacing' => 240,
'spacingTop' => 360,
'spacingBottom' => 240,
'textAlign' => 'both'
]
);
$docxFinal->customizeWordContent(
[ 'type' => 'style', 'target' => 'style', 'attributes' => ['w:*' => ['w:val' => 'TitoloSottoCapitolo']] ],
[
'bold' => false,
'italic' => true,
'color' => '000000',
'font' => 'Roboto',
'lineSpacing' => 240,
'textAlign' => 'both'
]
);
$docxFinal->customizeWordContent(
[ 'type' => 'style', 'target' => 'style', 'attributes' => ['w:*' => ['w:val' => 'NoteArticolo']] ],
[
'color' => '000000',
'font' => 'Roboto',
'fontSize'=> 8,
'lineSpacing' => 240,
'textAlign' => 'both'
]
);
$docxFinal->modifyPageLayout('A4',[
'marginTop' => $this->cm2twips(3.5),
'marginBottom' => $this->cm2twips(3.5),
'marginLeft' => $this->cm2twips(4.5),
'marginRight' => $this->cm2twips(4.5),
]);
$docxFinal->createDocx('ArticoloClelia_final.docx');
Final document:
https://www.topport.it/media/8b897b82-89f5-48e3-8f9e-3d0bce905d93/ArticoloClelia_final.docx
Note:
The script change color of text but not the font. I tried to change the "type" and "target" in all possible values but no changes.