tecsiaron/ublrenderer

UBL 2 HTML 渲染器 (PHP)

0.0.1-alpha 2024-07-18 10:26 UTC

This package is auto-updated.

Last update: 2024-09-07 01:58:28 UTC


README

仍在测试阶段
不应在生产中使用
PHP 库,用于将 RO eFactura UBL/ZIP 文件转换为 HTML/PDF*
查看 示例 PDF示例 HTML
使用 Twig 进行模板化,并支持用户自定义模板。
要求

  • php 8.2 或更高版本
  • ext-xmlreader
  • ext-bcmath
  • ext-zip
  • ext-libxml

安装

composer require tecsiaron/ublrenderer

在 shell 中使用

php vendor/bin/ubl2html.php <input.xml or input.zip> <output.html>

在 PHP 中的简单使用(带 XML 文件)

$content=file_get_contents("path_to.xml");
$renderer = new UBLRenderer($content);
$renderer->WriteFile();

使用 ANAF ZIP 的简单使用

$content=UBLRenderer::LoadUBLFromZip("test.zip")->ubl;
$renderer = new UBLRenderer($content);
$renderer->WriteFile();

在这两种情况下,文件将被写入到 vendor/tecsiaron/ublrenderer/output
要指定文件写入的位置,请调用 WriteFile(或 WriteFiles),如下所示

$renderer->WriteFiles(new HTMLFileWriter("path_to_output.html"));

高级使用

// get the contents of the XML
$renderer = new UBLRenderer($content);
$invoice=$renderer->ParseUBL();
$validation=$invoice->CanRender();
$validationFailReason="Validation failed:\n";
if(is_array($validation))
{
	echo "Failed to render invoice: ". implode("\n", $validation)
}
else
{
	$html=$renderer->CreateHTML(invoice);
}

*要支持 PDF,请安装 ublrenderer-pdf 并使用 PDFWriter

composer require tecsiaron/ublrenderer-pdf