PHP+MYSQL para o MS-WORD com PHPWord

O tempo passou e a dica foi perdida www.auscriptcase.com.br

1 Curtida

Buenas Noches, han trabajado con la libreria PHPWord llamandola con la macro sc_include_library.

Porque he tratado de realizar lo que han hecho y me da error.

trabajo con scriptcase 9.7.

1 Curtida

publica el error que aparece, ou, posta o erro que aparece.

ok, como trabajo con scriptcase 9.7, cargo la librería de la siguiente manera:

sc_include_library(“sys”,“PHPWord”, “Autolader.php”, true, true);
$documentoPHPWord = new PhpOffice\PhpWord();

El cual me muestra el siguiente error:

Fatal error : Uncaught Error: Class ‘PhpOffice\PhpWord’ not found in /Applications/Scriptcase/v9-php73/wwwroot/scriptcase/app/TierrasDeChile_Intranet/blank_7_Doc_Word/index.php:1781 Stack trace: #0 /Applications/Scriptcase/v9-php73/wwwroot/scriptcase/app/TierrasDeChile_Intranet/blank_7_Doc_Word/index.php(2143): blank_7_Doc_Word_apl->controle() #1 {main} thrown in /Applications/Scriptcase/v9-php73/wwwroot/scriptcase/app/TierrasDeChile_Intranet/blank_7_Doc_Word/index.php on line 1781

Estou passando por essa mesma situação, alguém poderia me passar como resolver?
Estou usando Scriptcase 9.7. Ja tentei usar Biblioteca Externa Publica e tentei tbm com biblioteca em projeto.

Hola, yo pude solventar el problema, dejame buscar ya que tuve que modificar la librería y me funciono.

1 Curtida

Realice lo siguiente:
1.- Me guie de este video que tiene dos modalidades de la librería, puede ser creando el documento a través del código php, o manipulando una planilla guardada en el servidor.

Como se me hace más fácil, modificar la plantilla utilice lo siguiente en una aplicación blank:
require_once dirname(FILE).’/PHPWord/Autoloader.php’;
\PhpOffice\PhpWord\Autoloader::register();

//use PhpOffice\PhpWord\TemplateProcessor;

$templateWord = new PhpOffice\PhpWord\TemplateProcessor(’/Applications/Scriptcase/v9-php73/wwwroot/scriptcase/file/doc/plantilla.docx’);

$nombre = “Sandra S.L.”;
$direccion = “Presidente Alesandri 617 la grnaja”;
$municipio = “Mrd”;
$provincia = “Bdj”;
$cp = “02541”;
$telefono = “24536784”;

// — Asignamos valores a la plantilla
$templateWord->setValue(‘nombre_empresa’,$nombre);
$templateWord->setValue(‘direccion_empresa’,$direccion);
$templateWord->setValue(‘municipio_empresa’,$municipio);
$templateWord->setValue(‘provincia_empresa’,$provincia);
$templateWord->setValue(‘cp_empresa’,$cp);
$templateWord->setValue(‘telefono_empresa’,$telefono);

// — Guardamos el documento
$templateWord->saveAs(‘Documento02.docx’);

header(“Content-Disposition: attachment; filename=Documento02.docx; charset=iso-8859-1”);
echo file_get_contents(‘Documento02.docx’);

De esta manera modifico mi archivo Word con la información que yo quiera agregar como lo muestra el video 2.
Ahora si necesitas crear desde cero un documento Word, como lo muestra en el video 1, utilice el siguiente código como una funtion:
require_once dirname(FILE).’/PHPWord/Autoloader.php’;
\PhpOffice\PhpWord\Autoloader::register();
//require_once dirname(FILE).’/PHPWord-MT/bootstrap.php’;
//\PhpOffice\PhpWord\bootstrap::register();

$documento = new \PhpOffice\PhpWord\PhpWord();

$seccion = $documento->addSection();

// Texto sin formato
$seccion->addText(
htmlspecialchars(

 'MIRA LO QUE HICE MALA LECHE TODO CON LA LIBERIA PHPWORD'

)
);
$seccion->addText(
htmlspecialchars(
‘Segundo texto con formato’
),
array(‘name’ => ‘Arial’, ‘size’ => ‘12’, ‘bold’ => ‘true’)
);

// Texto con fuente personalizada
$fuente_propia = ‘mifuente’;
$documento->addFontStyle($fuente_propia,
array(‘name’ => ‘Arial’, ‘size’ => ‘14’, ‘bold’ => ‘true’, ‘color’ => ‘5882FA’)
);

$seccion->addText(
htmlspecialchars(
‘Tercer texto con formato’
),
$fuente_propia
);

// Tabla personalizada
$estilo_tabla = array(
‘borderColor’ => ‘F2F2F2’,
‘borderSize’ => ‘5’,
‘cellMargin’ => ‘20’,
‘bgColor’ => ‘088A68’,
);

$primera_fila = array(‘bgColor’ => ‘F2F2F2’);
$documento->addTableStyle(‘mitabla’,$estilo_tabla, $primera_fila);
$tabla = $seccion->addTable(‘mitabla’);
for ($row = 1; $row <= 8; $row++) {
$tabla->addRow();
for ($cell = 1; $cell <= 3; $cell++) {
if($row ==1)
$tabla->addCell(200)->addText(htmlspecialchars(‘primera’));
else
$tabla->addCell(200)->addText(htmlspecialchars(‘celda’));
}
}
// Imagen
$seccion->addImage(
‘/Applications/Scriptcase/v9-php73/wwwroot/scriptcase/file/img/LogoTierras.jpg’,
array(
‘width’ => 600,
‘height’ => 400,
‘wrappingStyle’ => ‘behind’
)
);
//Guardando documento
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($documento, ‘Word2007’);
$objWriter->save(“Documento01.docx”);

header(“Content-Disposition: attachment; filename = Documento01.docx”);
echo file_get_contents(“Documento01.docx”);

Utilice la librería guardándola en la aplicación como tal, ósea copie la carpeta de la Liberia en la aplicación ejemplo: scriptcase/v9-php73/wwwroot/scriptcase/app/proyecto/aplicac_black. Y de esta manera pude utilizar la librería phpword en scriptcase.

Adjunto link de la liberia, https://mega.nz/file/TsIyAZIY#6Nxd9kvq9d5RUHU3jvy1hD3f7r0sUy4vfgmQopzf0A8

1 Curtida

Dá pau nos caracteres por conta do UTF